diff --git a/adventurers.py b/adventurers.py index aa9d69b..b00c807 100755 --- a/adventurers.py +++ b/adventurers.py @@ -137,7 +137,7 @@ class Adventurer: # return highest, found this at https://stackoverflow.com/a/280156 return max(prime_attributes, key=prime_attributes.get) - def set_equipment(self): + def set_equipment(self) -> list: equipment = [ 'backpack', 'tinderbox', 'waterskin' ] for i in range(2): item = "" @@ -147,7 +147,7 @@ class Adventurer: equipment.append(item) return equipment - def select_spells(self, spell_list) -> list: + def select_spells(self, spell_list: dict) -> list: spell_book = [] for spell_level, count in self.spells.items(): if count != "-": @@ -178,7 +178,7 @@ class Adventurer: def get_class_progression_for_level(self) -> list: return list(filter(lambda d: d['level'] == self.level, self.__class__.progression))[0] - def set_level(self, new_level) -> None: + def set_level(self, new_level: int) -> None: self.level = new_level self.hp = sum(self.hp_rolls[:self.level]) if self.player_class in [ "magic user", "elf" ]: diff --git a/app.py b/app.py index 42f7810..fbb0371 100644 --- a/app.py +++ b/app.py @@ -87,6 +87,7 @@ def character(): level = request.args.get("level", default=1, type=int) role = request.args.get("role", default="fighter", type=str) cache = request.args.get("cache", default='true', type=str) + # control inputs to prevent abuse if cache not in [ "true", "false" ]: cache = 'true' if not c_id.startswith('adv-'): @@ -95,12 +96,12 @@ def character(): level = 1 if role not in [ 'fighter','magic-user','cleric', 'thief', 'dwarf', 'elf', 'halfling']: role = 'fighter' + # check cookies for characters if request.cookies and cache != "false": character = return_character_from_cookie(request.cookies[c_id]) - print(character.player_class) if character.level != level: character.set_level(level) - # reroll until we get our class + # reroll until we get the class from the cookie, if it doesn't match while character.player_class != role.replace("-"," "): new_char = Adventurer(c_id, level) selected_class = AdventurerGen(new_char).selection() diff --git a/main.py b/main.py index acce82e..eb2aebd 100755 --- a/main.py +++ b/main.py @@ -59,7 +59,7 @@ class PartyGen(): self.adventurers = [] self.adventurer_types = [] - def gen_party(self): + def gen_party(self) -> None: c_id = 1 while len(self.adventurers) < self.size: identifier = "adv-" + str(c_id) @@ -75,13 +75,13 @@ class PartyGen(): self.adventurers.append(new_player) self.adventurer_types.append(new_player.player_class) - def set_party(self, adventurers, count, level): + def set_party(self, adventurers: list, count: int, level: int): self.size = count self.level = level self.adventurers = adventurers self.adventurer_types = [] - def get_new_party(party_size, party_level): + def get_new_party(party_size: int, party_level: int): # keep variables within expected ranges if party_size <= 0 or party_size > 5: party_size = 1 @@ -94,30 +94,28 @@ class PartyGen(): # return the created adventurer party return new_party - def get_character(self, identifer): + def get_character(self, identifer: str) -> Adventurer: for adv in self.adventurers: if adv.identifier == identifier: return adv - def get_character_sheets(self): + def get_character_sheets(self) -> list: sheet_string = "" character_sheets = [] for c in self.adventurers: character_sheets.append(c.vertical_sheet()) return character_sheets - def get_json(self): + def get_json(self) -> str: party_list = [] for c in self.adventurers: party_list.append(c.get_json()) party_json = json.dumps(party_list) return party_json - def __str__(self): + def __str__(self) -> str: return f"{self.adventurers}" - - # used for local testing def main(): adv_dict = Adventurer.get_subclass_dict()