made the class selector more agnostic
This commit is contained in:
16
main.py
16
main.py
@@ -61,6 +61,7 @@ class Adventurer:
|
|||||||
|
|
||||||
class Fighter(Adventurer):
|
class Fighter(Adventurer):
|
||||||
prime_requisite = "strength"
|
prime_requisite = "strength"
|
||||||
|
requirements = None
|
||||||
def __init__(self, attributes={}) -> None:
|
def __init__(self, attributes={}) -> None:
|
||||||
Adventurer.__init__(self, attributes)
|
Adventurer.__init__(self, attributes)
|
||||||
self.player_class = "fighter"
|
self.player_class = "fighter"
|
||||||
@@ -68,6 +69,7 @@ class Fighter(Adventurer):
|
|||||||
|
|
||||||
class MagicUser(Adventurer):
|
class MagicUser(Adventurer):
|
||||||
prime_requisite = "intelligence"
|
prime_requisite = "intelligence"
|
||||||
|
requirements = None
|
||||||
def __init__(self, attributes={}) -> None:
|
def __init__(self, attributes={}) -> None:
|
||||||
Adventurer.__init__(self, attributes)
|
Adventurer.__init__(self, attributes)
|
||||||
self.player_class = "magic-user"
|
self.player_class = "magic-user"
|
||||||
@@ -75,6 +77,7 @@ class MagicUser(Adventurer):
|
|||||||
|
|
||||||
class Cleric(Adventurer):
|
class Cleric(Adventurer):
|
||||||
prime_requisite = "wisdom"
|
prime_requisite = "wisdom"
|
||||||
|
requirements = None
|
||||||
def __init__(self, attributes={}) -> None:
|
def __init__(self, attributes={}) -> None:
|
||||||
Adventurer.__init__(self, attributes)
|
Adventurer.__init__(self, attributes)
|
||||||
self.player_class = "cleric"
|
self.player_class = "cleric"
|
||||||
@@ -82,6 +85,7 @@ class Cleric(Adventurer):
|
|||||||
|
|
||||||
class Thief(Adventurer):
|
class Thief(Adventurer):
|
||||||
prime_requisite = "dexterity"
|
prime_requisite = "dexterity"
|
||||||
|
requirements = None
|
||||||
def __init__(self, attributes={}) -> None:
|
def __init__(self, attributes={}) -> None:
|
||||||
Adventurer.__init__(self, attributes)
|
Adventurer.__init__(self, attributes)
|
||||||
self.player_class = "thief"
|
self.player_class = "thief"
|
||||||
@@ -115,8 +119,12 @@ class Halfling(Adventurer):
|
|||||||
class ClassSelector():
|
class ClassSelector():
|
||||||
def __init__(self, player: Adventurer) -> None:
|
def __init__(self, player: Adventurer) -> None:
|
||||||
self.player = player
|
self.player = player
|
||||||
self.available_classes = [ Fighter, MagicUser, Cleric, Thief ]
|
# https://stackoverflow.com/questions/3862310/how-to-find-all-the-subclasses-of-a-class-given-its-name
|
||||||
self.classes_with_reqs = [ Dwarf, Elf, Halfling ]
|
# pull classes that do not have requirements
|
||||||
|
self.available_classes = [cls for cls in Adventurer.__subclasses__() if not cls.requirements]
|
||||||
|
# pull classes that do have requirements
|
||||||
|
self.classes_with_reqs = [cls for cls in Adventurer.__subclasses__() if cls.requirements]
|
||||||
|
# run function to randomly select an adventurer class
|
||||||
self.selected_class = self.selection()
|
self.selected_class = self.selection()
|
||||||
|
|
||||||
def return_class_by_best_attribute(self):
|
def return_class_by_best_attribute(self):
|
||||||
@@ -178,12 +186,8 @@ def roll_dice(count, sides):
|
|||||||
return sum(random.randint(1,sides) for _ in range(count))
|
return sum(random.randint(1,sides) for _ in range(count))
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# https://stackoverflow.com/questions/3862310/how-to-find-all-the-subclasses-of-a-class-given-its-name
|
|
||||||
#print([cls.__name__ for cls in Adventurer.__subclasses__()])
|
|
||||||
|
|
||||||
new_party = PartyGenerator()
|
new_party = PartyGenerator()
|
||||||
new_party.gen_party()
|
new_party.gen_party()
|
||||||
new_party.get_character_sheets()
|
new_party.get_character_sheets()
|
||||||
|
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user