예제 #1
0
def add_possession(possessions,
                   item):  #inputs the possession dictionary and item
    """

	adds a skill or characteristic bonus to a character
	"""
    if item == "Blade":
        item = stellagama.random_choice(melee)
    if item == "Gun":
        item = stellagama.random_choice(guns)
    if item in possessions:
        possessions[item] += 1
    elif item not in possessions:
        possessions[item] = 1
    return possessions  #outputs the skill dictionary
예제 #2
0
def add_possession(possessions, item, gun_list,
                   blade_list):  #inputs the possession dictionary and item
    """

	adds a possession to the character
	"""
    if item == "Blade":
        if blade_list == []:
            item = stellagama.random_choice(melee)
        else:
            item = random.choice(blade_list)
    if item == "Gun":
        if gun_list == []:
            item = stellagama.random_choice(guns)
        else:
            item = random.choice(gun_list)
    if item in possessions:
        possessions[item] += 1
    elif item not in possessions:
        possessions[item] = 1
    return possessions  #outputs the possession dictionary
예제 #3
0
파일: henchgenlib.py 프로젝트: Brennall/RPG
def charclass(
        STR, DEX, CON, INT, WIS, CHA, sex, race,
        level):  #choses character class based on attributes, sex, and level
    attribute_list = [STR, DEX, CON, INT, WIS, CHA]
    profession = "fighter"
    if level == 0:
        profession = "normal person"
    else:
        if race == "human":
            if STR == max(attribute_list):
                profession = stellagama.random_choice(["fighter", "explorer"])
            elif DEX == max(attribute_list):
                profession = stellagama.random_choice(["thief", "assassin"])
            elif CON == max(attribute_list):
                profession = "fighter"
            elif INT == max(attribute_list):
                profession = "mage"
            elif WIS == max(attribute_list) and sex == "male":
                profession = "cleric"
            elif WIS == max(attribute_list) and sex == "female":
                stellagama.random_choice(
                    ["bladedancer", "bladedancer", "cleric"])
            elif CHA == max(attribute_list):
                profession = "bard"
            else:
                profession = "fighter"
        elif race == "dwarf":
            if WIS == max(attribute_list):
                profession = "craftpriest"
            else:
                profession = "vaultguard"
        elif race == "elf":
            if INT == max(attribute_list):
                profession = "spellsword"
            else:
                profession = "nightblade"
        else:
            profession = "fighter"
    return profession  #returns chosen class
예제 #4
0
파일: henchgenlib.py 프로젝트: Brennall/RPG
def weapon_gen(cclass):  #input character class
    """
	weapon generation
	"""
    if cclass in ["fighter", "spellsword"]:
        return stellagama.random_choice([
            "Battle Axe", "Great Axe", "Hand Axe", "Arbalest", "Crossbow",
            "Composite Bow", "Longbow", "Shortbow", "Club", "Flail", "Mace",
            "Morning Star", "Warhammer", "Javelin", "Pole Arm", "Spear",
            "Dagger", "Short Sword", "Sword", "Two-Handed Sword", "Staff",
            "Whip"
        ])
    if cclass == "mage":
        return stellagama.random_choice(["Staff", "Club", "Dagger", "Dart"])
    if cclass == "cleric":
        return stellagama.random_choice(
            ["Warhammer", "Mace", "Club", "Morning Star", "Staff", "Sling"])
    if cclass in ["thief", "bard", "explorer", "nightblade"]:
        return stellagama.random_choice([
            "Battle Axe", "Hand Axe", "Arbalest", "Crossbow", "Composite Bow",
            "Longbow", "Shortbow", "Club", "Flail", "Sap", "Mace", "Warhammer",
            "Javelin", "Spear", "Dagger", "Short Sword", "Sword", "Whip"
        ])
    if cclass == "assassin":
        return stellagama.random_choice([
            "Hand Axe", "Hand Axe", "Arbalest", "Crossbow", "Crossbow",
            "Composite Bow", "Longbow", "Shortbow", "Dagger", "Dagger",
            "Dagger", "Dagger", "Dagger", "Short Sword", "Short Sword",
            "Short Sword", "Sword"
        ])
    if cclass == "bladedancer":
        return stellagama.random_choice([
            "Battle Axe", "Great Axe", "Hand Axe", "Dagger", "Sword", "Sword",
            "Sword", "Shortsword", "Shortsword", "Two-Handed Sword",
            "Two-Handed Sword"
        ])
    if cclass == "vaultguard":
        return stellagama.random_choice([
            "Battle Axe", "Battle Axe", "Battle Axe", "Great Axe", "Great Axe",
            "Great Axe", "Hand Axe", "Hand Axe", "Hand Axe", "Hand Axe",
            "Arbalest", "Crossbow", "Composite Bow", "Shortbow", "Club",
            "Flail", "Mace", "Warhammer", "Warhammer", "Warhammer", "Javelin",
            "Spear", "Dagger", "Short Sword", "Short Sword", "Whip"
        ])
    if cclass == "craftpriest":
        return stellagama.random_choice([
            "Battle Axe", "Great Axe", "Hand Axe", "Flail", "Mace",
            "Morning Star", "Warhammer"
        ])
예제 #5
0
파일: henchgenlib.py 프로젝트: Brennall/RPG
def armor_gen(cclass):  #input character class
    """
	armor generation
	"""
    if cclass in [
            "fighter", "spellsword", "cleric", "vaultguard", "craftpriest"
    ]:
        return stellagama.random_choice([
            "Leather Armor", "Scale Mail", "Scale Mail", "Chain Mail",
            "Chain Mail", "Chain Mail", "Banded Plate"
        ])
    if cclass in ["thief", "bard", "assassin", "bladedancer", "nightblade"]:
        return stellagama.random_choice(
            ["Clothes", "Clothes", "Hide Armor", "Leather Armor"])
    if cclass == "explorer":
        return stellagama.random_choice([
            "clothes", "Hide Armor", "Leather Armor", "Scale Mail",
            "Chain Mail"
        ])
    if cclass == "mage":
        return "Robes"
    else:
        return "Clothes"
예제 #6
0
파일: henchgenlib.py 프로젝트: Brennall/RPG
def general_proficiency():
    """
	generate general proficiencies
	"""
    return stellagama.random_choice([
        "Alchemy", "Animal Husbandry", "Animal Training", "Art", "Bargaining",
        "Caving", "Collegiate Wizardry", "Craft", "Diplomacy", "Disguise",
        "Endurance", "Engineering", "Gambling", "Healing", "Intimidation",
        "Knowledge", "Labor", "Language", "Leadership", "Lip Reading",
        "Manual of Arms", "Mapping", "Military Strategy", "Mimicry",
        "Naturalism", "Navigation", "Performance", "Possession", "Riding",
        "Seafaring", "Seduction", "Siege Engineering", "Signalling",
        "Survival", "Theology", "Tracking", "Trapping"
    ])
예제 #7
0
def career_choice(upp):  #input upp list
    """
	chooses a career based on UPP characteristics.
	"""
    if upp[4] == max(upp):
        career = Navy
    elif upp[0] == max(upp):
        career = stellagama.random_choice([Scouts, Marines])
    elif upp[2] == max(upp):
        career = Army
    elif upp[3] == max(upp):
        career = Merchants
    else:
        career = Other
    return career  #outputs the chatacter's career
예제 #8
0
def name_gen():
    """
	randomly chooses a world name from a list
	"""
    with open("names.txt") as namefile:
        name_list = namefile.readlines()
    base_name = stellagama.random_choice(name_list)
    base_name = base_name.strip()
    char_list = [base_name]
    length_count = int(7 - len(base_name) // 2)
    if int(len(base_name) % 2) == 0:
        length_count += 1
    if length_count <= 0:
        length_count = 0
    for i in range(1, length_count):
        char_list.append(" ")
    name = " ".join(char_list)
    return name  #output random name
예제 #9
0
def add_skill(skill_list, skill):  #inputs the skill dictionary and skill
    """
	adds a skill or characteristic bonus to a character
	"""
    if skill == "Gun Combat":
        if stellagama.dice(1, 6) >= 3:
            for item in guns:
                if item in skill_list:
                    skill = item
                else:
                    skill = stellagama.random_choice(guns)
        else:
            skill = stellagama.random_choice(guns)
    elif skill in ["Blade Combat", "Blade Cbt"]:
        if stellagama.dice(1, 6) >= 3:
            for item in melee:
                if item in skill_list:
                    skill = item
                else:
                    skill = stellagama.random_choice(melee)
        else:
            skill = stellagama.random_choice(melee)
    elif skill == "Vehicle":
        if stellagama.dice(1, 6) >= 3:
            for item in vehicles:
                if item in skill_list:
                    skill = item
            else:
                skill = stellagama.random_choice(vehicles)
        else:
            skill = stellagama.random_choice(vehicles)
    if skill in skill_list:
        skill_list[skill] += 1
    elif skill not in skill_list:
        skill_list[skill] = 1
    return skill_list  #outputs the skill dictionary
예제 #10
0
 def __init__(self):
     """generate basic stats"""
     self.upp = [
         stellagama.dice(2, 6),
         stellagama.dice(2, 6),
         stellagama.dice(2, 6),
         stellagama.dice(2, 6),
         stellagama.dice(2, 6),
         stellagama.dice(2, 6)
     ]
     self.skills = {}
     self.possessions = {}
     self.rank = 0
     self.terms = 0
     self.cash = 0
     self.title = ""
     self.status = ""
     self.sex = stellagama.random_choice(["male", "female"])
     self.name = name_gen(self.sex)
     self.surname = stellagama.random_line("surnames.txt")
     self.career = career_choice(self.upp)
     self.age = 18
     """enlistment"""
     enlistment = stellagama.dice(2, 6)
     if self.upp[self.career["enlistment DM+1"]] >= self.career[
             "enlistment DM+1 level"]:
         enlistment += 1
     if self.upp[self.career["enlistment DM+2"]] >= self.career[
             "enlistment DM+2 level"]:
         enlistment += 2
     if enlistment >= self.career["enlistment"]:
         self.career = self.career
     else:
         self.career = stellagama.random_choice(
             [Navy, Marines, Army, Merchants, Scouts, Other])
     """career generation loop"""
     in_career = True
     while in_career == True:
         if self.terms == 0:
             if 0 in self.career["rank skills"]:
                 add_skill(self.skills, self.career["rank skills"][0])
         survival = stellagama.dice(2, 6)
         if self.upp[self.career["survival DM+1"]] >= self.career[
                 "survival DM+1 level"]:
             survival += 1
         if survival >= self.career["survival"]:
             in_career = True
             self.terms += 1
             self.age += 4
         else:
             self.status = "DECEASED"
             in_career = False
             break
         """skill generation"""
         if self.career in [Scouts, Other]:
             for i in range(0, 2):
                 skill_table = stellagama.random_choice(
                     ["personal", "service", "advanced", "advanced 2"])
                 add_skill(
                     self.skills,
                     stellagama.random_choice(self.career[skill_table]))
         else:
             if self.terms == 1:
                 for i in range(0, 2):
                     skill_table = stellagama.random_choice(
                         ["personal", "service", "advanced", "advanced 2"])
                     add_skill(
                         self.skills,
                         stellagama.random_choice(self.career[skill_table]))
             else:
                 skill_table = stellagama.random_choice(
                     ["personal", "service", "advanced", "advanced 2"])
                 add_skill(
                     self.skills,
                     stellagama.random_choice(self.career[skill_table]))
         """commission and promotion"""
         if self.career in [Scouts, Other]:
             self.rank = 0
         elif self.rank == 0:
             commission = stellagama.dice(2, 6)
             if self.upp[self.career["commission DM+1"]] >= self.career[
                     "commission DM+1 level"]:
                 commission += 1
             if commission >= self.career["commission"]:
                 self.rank += 1
                 skill_table = stellagama.random_choice(
                     ["personal", "service", "advanced", "advanced 2"])
                 add_skill(
                     self.skills,
                     stellagama.random_choice(self.career[skill_table]))
                 if self.rank in self.career["rank skills"]:
                     add_skill(self.skills,
                               self.career["rank skills"][self.rank])
             else:
                 self.rank = self.rank
         if self.rank > 0 and self.rank < 6:
             promotion = stellagama.dice(2, 6)
             if self.upp[self.career["promotion DM+1"]] >= self.career[
                     "promotion DM+1 level"]:
                 promotion += 1
             if promotion >= self.career["promotion"]:
                 self.rank += 1
                 skill_table = stellagama.random_choice(
                     ["personal", "service", "advanced", "advanced 2"])
                 add_skill(
                     self.skills,
                     stellagama.random_choice(self.career[skill_table]))
                 if self.rank in self.career["rank skills"]:
                     add_skill(self.skills,
                               self.career["rank skills"][self.rank])
             else:
                 self.rank = self.rank
         """reenlistment"""
         reenlistment = stellagama.dice(2, 6)
         if self.terms < 7 and reenlistment >= self.career["reenlist"]:
             in_career = True
         elif self.terms >= 7 and reenlistment == 12:
             in_career = True
         else:
             in_career = False
     """mustering out"""
     if self.status == "DECEASED":
         self.possessions = {}
     else:
         muster_throws = self.terms
         if self.rank in [1, 2]:
             muster_throws += 1
         elif self.rank in [3, 4]:
             muster_throws += 2
         elif self.rank in [5, 6]:
             muster_throws += 3
         for i in range(0, muster_throws):
             muster_table = stellagama.random_choice(["muster", "cash"])
             muster_roll = stellagama.dice(1, 6) - 1
             if muster_table == "muster" and self.rank >= 5:
                 muster_roll += 1
             if muster_table == "cash" and "Gambling" in self.skills:
                 muster_roll += 1
             if muster_table == "muster":
                 add_possession(self.possessions,
                                self.career["muster"][muster_roll])
             elif muster_table == "cash":
                 self.cash += self.career["cash"][muster_roll]
     """characteristic modifications"""
     for k in list(self.skills.keys()):
         if k == "+1 STR":
             self.upp[0] += 1
             del self.skills[k]
         elif k == "+1 DEX":
             self.upp[1] += 1
             del self.skills[k]
         elif k == "+1 END":
             self.upp[2] += 1
             del self.skills[k]
         elif k == "+1 INT":
             self.upp[3] += 1
             del self.skills[k]
         elif k == "+1 EDU":
             self.upp[4] += 1
             del self.skills[k]
         elif k == "+2 EDU":
             self.upp[4] += 2
             del self.skills[k]
         elif k == "+1 SOC":
             self.upp[5] += 1
             del self.skills[k]
         elif k == "+2 SOC":
             self.upp[5] += 2
             del self.skills[k]
         elif k == "-1 SOC":
             self.upp[5] -= 1
     for k in list(self.possessions.keys()):
         if k == "+1 STR":
             self.upp[0] += 1
             del self.possessions[k]
         elif k == "+1 DEX":
             self.upp[1] += 1
             del self.possessions[k]
         elif k == "+1 END":
             self.upp[2] += 1
             del self.possessions[k]
         elif k == "+1 INT":
             self.upp[3] += 1
             del self.possessions[k]
         elif k == "+1 EDU":
             self.upp[4] += 1
             del self.possessions[k]
         elif k == "+2 EDU":
             self.upp[4] += 2
             del self.possessions[k]
         elif k == "+1 SOC":
             self.upp[5] += 1
             del self.possessions[k]
         elif k == "+2 SOC":
             self.upp[5] += 2
             del self.possessions[k]
     """titles"""
     if self.upp[5] == 11:
         if self.sex == "male":
             self.title = "Knight"
         elif self.sex == "female":
             self.title = "Dame"
     elif self.upp[5] == 12:
         if self.sex == "male":
             self.title = "Baron"
         elif self.sex == "female":
             self.title = "Baroness"
     elif self.upp[5] == 13:
         if self.sex == "male":
             self.title = "Marquis"
         elif self.sex == "female":
             self.title = "Marquesa"
     elif self.upp[5] == 14:
         if self.sex == "male":
             self.title = "Count"
         elif self.sex == "female":
             self.tatile = "Contessa"
     elif self.upp[5] == 15:
         if self.sex == "male":
             self.title = "Duke"
         elif self.sex == "female":
             self.title = "Duchess"
     elif self.rank >= 5:
         self.title = self.career["ranks"][self.rank]
     else:
         if self.sex == "male":
             self.title = "Mr."
         elif self.sex == "female":
             self.title = stellagama.random_choice(["Ms.", "Mrs."])
     if self.upp[4] >= 12:
         self.title = "Dr."  #you get PhD at EDU 12+!
     if "Medical" in self.skills:
         if self.skills["Medical"] >= 3:
             self.title = "Dr."
예제 #11
0
파일: henchgenlib.py 프로젝트: Brennall/RPG
def classprof(level, cclass):  #input character level
    """
	generate class proficiencies
	"""
    proflist = []
    if cclass == "assassin":
        profs = [
            "Acrobatics", "Alchemy", "Alertness", "Arcane Dabbling",
            "Blind Fighting", "Bribery", "Cat Burglary", "Climbing",
            "Combat Reflexes", "Combat Trickery (disarm)",
            "Combat Trickery (incapacitate)", "Contortionism", "Disguise",
            "Eavesdropping", "Fighting Style", "Gambling", "Intimidation",
            "Mimicry", "Precise Shooting", "Running", "Seduction",
            "Skirmishing", "Skulking", "Sniping", "Swashbuckling",
            "Trap Finding", "Weapon Finesse", "Weapon Focus"
        ]
    if cclass == "bard":
        profs = [
            "Acrobatics", "Alchemy", "Alertness", "Arcane Dabbling",
            "Blind Fighting", "Bribery", "Cat Burglary", "Climbing",
            "Combat Reflexes", "Combat Trickery (disarm)", "Command",
            "Diplomacy", "Eavesdropping", "Elven Bloodline", "Fighting Style",
            "Healing", "Knowledge", "Language", "Leadership", "Lip Reading",
            "Magical Engineering", "Magical Music", "Mimicry", "Mystic Aura",
            "Performance", "Precise Shooting", "Prestidigitation", "Running",
            "Seduction", "Skirmishing", "Swashbuckling", "Weapon Finesse",
            "Weapon Focus"
        ]
    if cclass == "bladedancer":
        profs = [
            "Acrobatics", "Apostasy", "Battle Magic", "Beast Friendship",
            "Combat Reflexes", "Combat Trickery (disarm)",
            "Combat Trickery (trip)", "Contemplation", "Diplomacy",
            "Divine Blessing", "Divine Health", "Fighting Style",
            "Laying on Hands", "Magical Music", "Martial Training",
            "Performance", "Prestidigitation", "Prophecy", "Quiet Magic",
            "Righteous Turning", "Running", "Seduction", "Skirmishing",
            "Swashbuckling", "Theology", "Unflappable Casting",
            "Weapon Finesse", "Weapon Focus"
        ]
    if cclass == "cleric":
        profs = [
            "Apostasy", "Battle Magic", "Beast Friendship",
            "Combat Trickery (force back)", "Combat Trickery (overrun)",
            "Combat Trickery (sunder)", "Command", "Contemplation",
            "Diplomacy", "Divine Blessing", "Divine Health", "Fighting Style",
            "Healing", "Knowledge (history)", "Laying on Hands", "Leadership",
            "Loremastery", "Magical Engineering", "Martial Training",
            "Prestidigitation", "Profession (judge)", "Prophecy",
            "Quiet Magic", "Righteous Turning", "Sensing Evil",
            "Sensing Power", "Theology", "Unflappable Casting", "Weapon Focus"
        ]
    if cclass == "explorer":
        profs = [
            "Alertness", "Ambushing", "Beast Friendship", "Blind Fighting",
            "Climbing", "Combat Reflexes", "Combat Trickery (disarm)",
            "Combat Trickery (knock down)", "Eavesdropping", "Endurance",
            "Fighting Style", "Land Surveying", "Mapping", "Mountaineering",
            "Naturalism", "Navigation", "Passing Without Trace",
            "Precise Shooting", "Riding", "Running", "Seafaring",
            "Skirmishing", "Sniping", "Survival", "Swashbuckling", "Trapping",
            "Weapon Finesse", "Weapon Focus"
        ]
    if cclass == "fighter":
        profs = [
            "Acrobatics", "Alertness", "Berserkergang", "Blind Fighting",
            "Combat Reflexes", "Combat Trickery (disarm)",
            "Combat Trickery (force back)", "Combat Trickery (knock down)",
            "Combat Trickery (sunder)", "Command", "Dungeon Bashing",
            "Endurance", "Fighting Style", "Gambling", "Intimidation",
            "Leadership", "Manual of Arms", "Military Strategy",
            "Precise Shooting", "Riding", "Running", "Siege Engineering",
            "Skirmishing", "Survival", "Swashbuckling", "Weapon Finesse",
            "Weapon Focus"
        ]
    if cclass == "mage":
        profs = [
            "Alchemy", "Battle Magic", "Beast Friendship",
            "Black Lore of Zahar", "Collegiate Wizardry", "Craft", "Diplomacy",
            "Elementalism", "Elven Bloodline", "Engineering", "Familiar",
            "Healing", "Illusion Resistance", "Knowledge", "Language",
            "Loremastery", "Magical Engineering", "Mapping", "Mystic Aura",
            "Naturalism", "Quiet Magic", "Performance", "Prestidigitation",
            "Profession", "Sensing Power", "Transmogrification", "Soothsaying",
            "Unflappable Casting"
        ]
    if cclass == "thief":
        profs = [
            "Acrobatics", "Alertness", "Arcane Dabbling", "Blind Fighting",
            "Bribery", "Cat Burglary", "Combat Reflexes",
            "Combat Trickery (disarm)", "Combat Trickery (incapacitate)",
            "contortionism", "Diplomacy", "Fighting Style", "Gambling",
            "Intimidation", "Lip Reading", "Lockpicking", "Mapping",
            "Precise Shooting", "Riding", "Running", "Seafaring",
            "Skirmishing", "Skulking", "Sniping", "Swashbuckling",
            "Trap Finding", "Weapon Finesse", "Weapon Focus"
        ]
    if cclass == "craftpriest":
        profs = [
            "Alchemy", "Art", "Battle Magic", "Caving", "Collegiate Wizardry",
            "Contemplation", "Craft", "Diplomacy", "Divine Blessing",
            "Divine Health", "Dwarven Brewing", "Endurance", "Engineering",
            "Fighting Style", "Goblin-Slaying", "Healing",
            "Illusion Resistance", "Knowledge", "Laying on Hands",
            "Loremastery", "Magical Engineering", "Mapping",
            "Performance (chanting)", "Prestidigitation", "Profession (judge)",
            "Prophecy", "Quiet Magic", "Righteous Turning", "Sensing Evil",
            "Siege Engineering", "Theology", "Unflappable Casting",
            "Weapon Focus"
        ]
    if cclass == "vaultguard":
        profs = [
            "Alertness", "Berserkergang", "Blind Fighting", "Caving",
            "Combat Reflexes", "Combat Trickery (force back)",
            "Combat Trickery (knock down)", "Combat Trickery (overrun)",
            "Combat Trickery (sunder)", "Combat Trickery (wrestle)", "Command",
            "Craft", "Dungeon Bashing", "Dwarven Brewing", "Endurance",
            "Engineering", "Fighting Style", "Gambling", "Goblin-Slaying",
            "Illusion Resistance", "Intimidation", "Land Surveying",
            "Leadership", "Mapping", "Manual of Arms", "Military Strategy",
            "Mountaineering", "Siege Engineering", "Weapon Focus"
        ]
    if cclass == "nightblade":
        profs = [
            "Alchemy", "Alertness", "Battle Magic", "Beast Friendship",
            "Black Lore of Zahar", "Blind Fighting", "Combat Reflexes",
            "Combat Trickery (disarm)", "Combat Trickery (incapacitate)",
            "Contortionism", "Elementalism", "Familiar", "Fighting Style",
            "Intimidation", "Magical Engineering", "Mystic Aura",
            "Passing Without Trace", "Precise Shooting", "Prestidigitation",
            "Quiet Magic", "Running", "Sensing Power", "Skirmishing",
            "Skulking", "Sniping", "Swashbuckling", "Unflappable Casting",
            "Trap Finding", "Wakefulness", "Weapon Focus", "Weapon Finesse"
        ]
    if cclass == "spellsword":
        profs = [
            "Acrobatics", "Alertness", "Battle Magic", "Beast Friendship",
            "Black Lore of Zahar", "Blind Fighting", "Combat Reflexes",
            "Combat Trickery (disarm)", "Combat Trickery (knock down)",
            "Command", "Elementalism", "Familiar", "Fighting Style",
            "Leadership", "Loremastery", "Magical Engineering",
            "Magical Music", "Mystic Aura", "Naturalism",
            "Passing Without Trace", "Quiet Magic", "Precise Shooting",
            "Prestidigitation", "Running", "Sensing Power", "Skirmishing",
            "Soothsaying", "Swashbuckler", "Unflappable Casting",
            "Wakefulness", "Weapon Focus", "Weapon Finesse"
        ]
    if level in [1, 2] and cclass in [
            "assassin", "vaultguard", "spellsword", "explorer", "fighter"
    ]:
        proflist.append(stellagama.random_choice(profs))
    elif level in [1, 2, 3] and cclass not in [
            "assassin", "vaultguard", "spellsword", "explorer", "fighter"
    ]:
        proflist.append(stellagama.random_choice(profs))
    if level in [3, 4] and cclass in [
            "assassin", "vaultguard", "spellsword", "explorer", "fighter"
    ]:
        for i in range(0, 2):
            proflist.append(stellagama.random_choice(profs))
    elif level == 4 and cclass not in [
            "assassin", "vaultguard", "spellsword", "explorer", "fighter"
    ]:
        for i in range(0, 2):
            proflist.append(stellagama.random_choice(profs))
    proficiencies = ", ".join(proflist)
    return proficiencies  #returns a list of class proficiencies