From a83c49146c963669a29fa21df0a973749c93149d Mon Sep 17 00:00:00 2001 From: Ben Cook Date: Sun, 23 Dec 2018 03:22:47 -0500 Subject: [PATCH] checked new code works for create-character --- ben.pdf | Bin 294426 -> 287621 bytes ben.py | 32 +-- dungeonsheets/background.py | 2 +- dungeonsheets/character.py | 81 ++++---- dungeonsheets/classes/barbarian.py | 6 +- dungeonsheets/classes/bard.py | 5 +- dungeonsheets/classes/classes.py | 6 +- dungeonsheets/classes/cleric.py | 1 + dungeonsheets/classes/druid.py | 1 + dungeonsheets/classes/fighter.py | 1 + dungeonsheets/classes/monk.py | 1 + dungeonsheets/classes/paladin.py | 1 + dungeonsheets/classes/rogue.py | 3 +- dungeonsheets/classes/sorceror.py | 1 + dungeonsheets/classes/warlock.py | 1 + dungeonsheets/classes/wizard.py | 1 + dungeonsheets/create_character.py | 238 ++++++++++++---------- dungeonsheets/features/features.py | 2 +- dungeonsheets/features/monk.py | 37 ++-- dungeonsheets/features/ranger.py | 12 +- dungeonsheets/forms/features_template.tex | 18 +- dungeonsheets/magic_items.py | 1 + dungeonsheets/race.py | 2 +- dungeonsheets/stats.py | 1 - dungeonsheets/weapons.py | 5 +- 25 files changed, 264 insertions(+), 195 deletions(-) diff --git a/ben.pdf b/ben.pdf index ea608bde51c290d6db2dee92ad0c70dcd53cb945..7b4b29ef008468d96f774360e4904c19c3ffe048 100644 GIT binary patch delta 61345 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 delta 68436 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±HRus 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 L2Nv8&{aJ1*{I*KscndQc; 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 diff --git a/ben.py b/ben.py index 1aab057..827fcce 100644 --- a/ben.py +++ b/ben.py @@ -8,31 +8,34 @@ sheet by running ``makesheets`` from the command line. """ -dungeonsheets_version = "0.8.3" +dungeonsheets_version = "0.9.0" name = "Ben" -classes_levels = ['paladin 1'] -subclasses = ["Oath of The Ancients"] player_name = "Ben" -background = "Charlatan" -race = "Hill Dwarf" + +# Be sure to list Primary class first +classes = ['Bard', 'Paladin'] # ex: ['Wizard'] or ['Rogue', 'Fighter'] +levels = [10, 2] # ex: [10] or [3, 2] +subclasses = ['', ''] # ex: ['Necromacy'] or ['Thief', None] +background = "Sailor" +race = "Half-Orc" alignment = "Neutral good" xp = 0 hp_max = 10 # Ability Scores -strength = 15 -dexterity = 14 -constitution = 15 +strength = 20 +dexterity = 13 +constitution = 14 intelligence = 12 -wisdom = 11 -charisma = 8 +wisdom = 10 +charisma = 9 # Select what skills you're proficient with -skill_proficiencies = ('intimidation', 'athletics', 'deception', 'sleight of hand') +# ex: skill_proficiencies = ('athletics', 'acrobatics', 'arcana') +skill_proficiencies = ('arcana', 'medicine', 'athletics', 'perception', 'intimidation') -# Named features / feats that aren't part of your classes, -# race, or background. +# Named features / feats that aren't part of your classes, race, or background. # Example: # features = ('Tavern Brawler',) # take the optional Feat from PHB features = () @@ -43,7 +46,7 @@ features = () feature_choices = () # Proficiencies and languages -languages = """Common, Dwarvish""" +languages = """Common, Orc""" # Inventory # TODO: Get yourself some money @@ -55,6 +58,7 @@ pp = 0 # TODO: Put your equipped weapons and armor here weapons = () # Example: ('shortsword', 'longsword') +magic_items = () # Example: ('ring of protection',) armor = "" # Eg "light leather armor" shield = "" # Eg "shield" diff --git a/dungeonsheets/background.py b/dungeonsheets/background.py index 8cb70b3..d703fec 100644 --- a/dungeonsheets/background.py +++ b/dungeonsheets/background.py @@ -12,7 +12,7 @@ class Background(): features = () languages = () - def __init__(self, owner): + def __init__(self, owner=None): self.owner = owner cls = type(self) self.features = tuple([f(owner=self.owner) for f in cls.features]) diff --git a/dungeonsheets/character.py b/dungeonsheets/character.py index 2c367e2..2b80fef 100644 --- a/dungeonsheets/character.py +++ b/dungeonsheets/character.py @@ -143,7 +143,7 @@ class Character(): my_levels = [attrs.pop('level', 1)] my_subclasses = [attrs.pop('subclass', None)] # Generate the list of class objects - self.class_list = parse_classes( + self.add_classes( my_classes, my_levels, my_subclasses, feature_choices=attrs.get('feature_choices', [])) # parse race and background @@ -158,6 +158,47 @@ class Character(): def __repr__(self): return f"<{self.class_name}: {self.name}>" + def add_class(self, cls: (classes.CharClass, type, str), level: (int, str), + subclass=None, feature_choices=[]): + if isinstance(cls, str): + cls = cls.strip().title().replace(' ', '') + try: + cls = getattr(classes, cls) + except AttributeError: + raise AttributeError( + 'class was not recognized from classes.py: {:s}'.format(c)) + if isinstance(level, str): + level = int(level) + params = {} + params['feature_choices'] = feature_choices + self.class_list.append(cls(level, owner=self, + subclass=subclass, **params)) + + def add_classes(self, classes_list=[], levels=[], subclasses=[], + feature_choices=[]): + if isinstance(classes_list, str): + classes_list = [classes_list] + if isinstance(levels, int) or isinstance(levels, float) or isinstance(levels, str): + levels = [levels] + if len(levels) == 0: + levels = [1]*len(classes_list) + if isinstance(subclasses, str): + subclasses = [subclasses] + if len(subclasses) == 0: + subclasses = [None]*len(classes_list) + assert len(classes_list) == len(levels), ( + 'the length of classes {:d} does not match length of ' + 'levels {:d}'.format(len(classes), len(levels))) + assert len(classes_list) == len(subclasses), ( + 'the length of classes {:d} does not match length of ' + 'subclasses {:d}'.format(len(classes_list), len(subclasses))) + class_list = [] + for cls, lvl, sub in zip(classes_list, levels, subclasses): + params = {} + params['feature_choices'] = feature_choices + self.add_class(cls=cls, level=lvl, subclass=sub, + **params) + @property def race(self): return self._race @@ -632,7 +673,7 @@ class Character(): for c in self.class_list: if isinstance(c, classes.Druid): c.wild_shapes = new_shapes - + @classmethod def load(cls, character_file): # Create a character from the character definition @@ -668,42 +709,6 @@ class Character(): flatten=kwargs.get('flatten', True)) -def parse_classes(classes_list=[], levels=[], subclasses=[], - feature_choices=[]): - if isinstance(classes_list, str): - classes_list = [classes_list] - if isinstance(levels, int) or isinstance(levels, float) or isinstance(levels, str): - levels = [levels] - if len(levels) == 0: - levels = [1]*len(classes_list) - if isinstance(subclasses, str): - subclasses = [subclasses] - if len(subclasses) == 0: - subclasses = [None]*len(classes_list) - assert len(classes_list) == len(levels), ( - 'the length of classes {:d} does not match length of ' - 'levels {:d}'.format(len(classes), len(levels))) - assert len(classes_list) == len(subclasses), ( - 'the length of classes {:d} does not match length of ' - 'subclasses {:d}'.format(len(classes_list), len(subclasses))) - class_list = [] - for cls, lvl, sub in zip(classes_list, levels, subclasses): - if isinstance(cls, str): - cls = cls.strip().title().replace(' ', '') - try: - this_class = getattr(classes, cls) - this_level = int(lvl) - except AttributeError: - raise AttributeError( - 'class was not recognized from classes.py: {:s}'.format(c)) - except ValueError: - raise ValueError( - 'level was not recognizable as an int: {:s}'.format(str(lvl))) - params = {} - params['feature_choices'] = feature_choices - class_list += [this_class(this_level, subclass=sub, **params)] - return class_list - def read_character_file(filename): """Create a character object from the given definition file. diff --git a/dungeonsheets/classes/barbarian.py b/dungeonsheets/classes/barbarian.py index 196c997..a306498 100644 --- a/dungeonsheets/classes/barbarian.py +++ b/dungeonsheets/classes/barbarian.py @@ -99,13 +99,15 @@ class ZealotPath(SubClass): class Barbarian(CharClass): name = 'Barbarian' hit_dice_faces = 12 + subclass_select_level = 3 saving_throw_proficiencies = ('strength', 'constitution') primary_abilities = ('strength',) - weapon_proficiencies = (weapons.SimpleWeapon + weapons.MartialWearpon) + weapon_proficiencies = (weapons.SimpleWeapon, weapons.MartialWeapon) _proficiencies_text = ('light armor', 'medium armor', 'shields', 'simple weapons', 'martial weapons') multiclass_weapon_proficiencies = weapon_proficiencies - _multiclass_proficiencies_text = ('shields', 'simple weapons', 'martial weapons') + _multiclass_proficiencies_text = ('shields', 'simple weapons', + 'martial weapons') class_skill_choices = ('Animal Handling', 'Athletics', 'Intimidation', 'Nature', 'Perception', 'Survival') subclasses_available = (BerserkerPath, TotemWarriorPath, BattleragerPath, diff --git a/dungeonsheets/classes/bard.py b/dungeonsheets/classes/bard.py index 699006c..06bce9f 100644 --- a/dungeonsheets/classes/bard.py +++ b/dungeonsheets/classes/bard.py @@ -116,13 +116,14 @@ class CollegeOfWhispers(SubClass): class Bard(CharClass): name = 'Bard' hit_dice_faces = 8 + subclass_select_level = 3 saving_throw_proficiencies = ('dexterity', 'charisma') primary_abilities = ('charisma',) _proficiencies_text = ( 'Light armor', 'simple weapons', 'hand crossbows', 'longswords', 'rapiers', 'shortswords', 'three musical instruments of your choice') - weapon_proficiencies = ((weapons.HandCrossbow, weapons.Longsword, - weapons.Rapier, weapons.Shortsword) + + weapon_proficiencies = (weapons.HandCrossbow, weapons.Longsword, + weapons.Rapier, weapons.Shortsword, weapons.SimpleWeapon) class_skill_choices = ('Acrobatics', 'Animal Handling', 'Arcana', 'Athletics', 'Deception', 'History', 'Insight', diff --git a/dungeonsheets/classes/classes.py b/dungeonsheets/classes/classes.py index 0fc9dfa..71c5910 100644 --- a/dungeonsheets/classes/classes.py +++ b/dungeonsheets/classes/classes.py @@ -9,6 +9,7 @@ class CharClass(): name = "Default" level = 1 hit_dice_faces = 2 + subclass_select_level = 3 weapon_proficiencies = () _proficiencies_text = () multiclass_weapon_proficiencies = () @@ -26,9 +27,12 @@ class CharClass(): subclasses_available = () features_by_level = defaultdict(list) - def __init__(self, level, subclass=None, feature_choices=[], + def __init__(self, level, owner=None, subclass=None, feature_choices=[], **params): self.level = level + self.owner = owner + # For ex: add "char.Monk" attribute + setattr(self.owner, self.name, self) # Instantiate the features self.features_by_level = defaultdict(list) cls = type(self) diff --git a/dungeonsheets/classes/cleric.py b/dungeonsheets/classes/cleric.py index 21ca7d0..9dcff8f 100644 --- a/dungeonsheets/classes/cleric.py +++ b/dungeonsheets/classes/cleric.py @@ -183,6 +183,7 @@ class GraveDomain(SubClass): class Cleric(CharClass): name = 'Cleric' hit_dice_faces = 8 + subclass_select_level = 1 saving_throw_proficiencies = ('wisdom', 'charisma') primary_abilities = ('wisdom',) _proficiencies_text = ('light armor', 'medium armor', 'shields', diff --git a/dungeonsheets/classes/druid.py b/dungeonsheets/classes/druid.py index 893f526..9490458 100644 --- a/dungeonsheets/classes/druid.py +++ b/dungeonsheets/classes/druid.py @@ -86,6 +86,7 @@ class Druid(CharClass): _wild_shapes = () _circle = '' hit_dice_faces = 8 + subclass_select_level = 2 saving_throw_proficiencies = ('intelligence', 'wisdom') primary_abilities = ('wisdom',) languages = 'Druidic' diff --git a/dungeonsheets/classes/fighter.py b/dungeonsheets/classes/fighter.py index f7c3f5c..0c914d9 100644 --- a/dungeonsheets/classes/fighter.py +++ b/dungeonsheets/classes/fighter.py @@ -165,6 +165,7 @@ class Gunslinger(SubClass): class Fighter(CharClass): name = 'Fighter' hit_dice_faces = 10 + subclass_select_level = 3 saving_throw_proficiencies = ('strength', 'constitution') primary_abilities = ('strength', 'dexterity',) _proficiencies_text = ('All armor', 'shields', 'simple weapons', diff --git a/dungeonsheets/classes/monk.py b/dungeonsheets/classes/monk.py index 0bd4984..c442f84 100644 --- a/dungeonsheets/classes/monk.py +++ b/dungeonsheets/classes/monk.py @@ -110,6 +110,7 @@ class KenseiWay(SubClass): class Monk(CharClass): name = 'Monk' hit_dice_faces = 8 + subclass_select_level = 3 saving_throw_proficiencies = ('strength', 'dexterity') primary_abilities = ('dexterity', 'wisdom') _proficiencies_text = ( diff --git a/dungeonsheets/classes/paladin.py b/dungeonsheets/classes/paladin.py index adeab7a..298b90c 100644 --- a/dungeonsheets/classes/paladin.py +++ b/dungeonsheets/classes/paladin.py @@ -222,6 +222,7 @@ class OathOfRedemption(SubClass): class Paladin(CharClass): name = 'Paladin' hit_dice_faces = 10 + subclass_select_level = 3 saving_throw_proficiencies = ('wisdom', 'charisma') primary_abilities = ('strength', 'charisma') _proficiencies_text = ('All armor', 'shields', 'simple weapons', diff --git a/dungeonsheets/classes/rogue.py b/dungeonsheets/classes/rogue.py index d197230..8bf8b62 100644 --- a/dungeonsheets/classes/rogue.py +++ b/dungeonsheets/classes/rogue.py @@ -118,12 +118,13 @@ class Swashbuckler(SubClass): class Rogue(CharClass): name = 'Rogue' hit_dice_faces = 8 + subclass_select_level = 3 saving_throw_proficiencies = ('dexterity', 'intelligence') primary_abilities = ('dexterity',) _proficiencies_text = ( 'light armor', 'simple weapons', 'hand crossbows', 'longswords', 'rapiers', 'shortswords', "thieves' tools") - weapon_proficiencies = (weapons,SimpleWeapon, weapons.HandCrossbow, + weapon_proficiencies = (weapons.SimpleWeapon, weapons.HandCrossbow, weapons.Longsword, weapons.Rapier, weapons.Shortsword) multiclass_weapon_proficiencies = () diff --git a/dungeonsheets/classes/sorceror.py b/dungeonsheets/classes/sorceror.py index baf1cdb..1317505 100644 --- a/dungeonsheets/classes/sorceror.py +++ b/dungeonsheets/classes/sorceror.py @@ -94,6 +94,7 @@ class StormSorcery(SubClass): class Sorceror(CharClass): name = 'Sorceror' hit_dice_faces = 6 + subclass_select_level = 1 saving_throw_proficiencies = ('constitution', 'charisma') primary_abilities = ('charisma',) _proficiencies_text = ('daggers', 'darts', 'slings', diff --git a/dungeonsheets/classes/warlock.py b/dungeonsheets/classes/warlock.py index 86a7428..01c8470 100644 --- a/dungeonsheets/classes/warlock.py +++ b/dungeonsheets/classes/warlock.py @@ -115,6 +115,7 @@ class Hexblade(SubClass): class Warlock(CharClass): name = 'Warlock' hit_dice_faces = 8 + subclass_select_level = 1 saving_throw_proficiencies = ('wisdom', 'charisma') primary_abilities = ('charisma',) _proficiencies_text = ("light Armor", "simple weapons") diff --git a/dungeonsheets/classes/wizard.py b/dungeonsheets/classes/wizard.py index a07cae3..0db124e 100644 --- a/dungeonsheets/classes/wizard.py +++ b/dungeonsheets/classes/wizard.py @@ -159,6 +159,7 @@ class WarMagic(SubClass): class Wizard(CharClass): name = 'Wizard' hit_dice_faces = 6 + subclass_select_level = 2 saving_throw_proficiencies = ('intelligence', 'wisdom') primary_abilities = ('intelligence',) _proficiencies_text = ('daggers', 'darts', 'slings', diff --git a/dungeonsheets/create_character.py b/dungeonsheets/create_character.py index c43a4aa..0c639c3 100755 --- a/dungeonsheets/create_character.py +++ b/dungeonsheets/create_character.py @@ -30,6 +30,49 @@ races = {r.name: r for r in race.available_races} backgrounds = {b.name: b for b in background.available_backgrounds} +class LinkedListForm(npyscreen.ActionForm): + prev_page = None + this_page = None + next_page = None + + def __init__(self, formid, *args, **kwargs): + self.this_page = formid + super().__init__(*args, **kwargs) + + def to_next(self): + self.parentApp.setNextForm(self.next_page) + + def to_prev(self): + self.parentApp.setNextForm(self.prev_page) + + def add_next(self, next_name): + new_next = self.parentApp.getForm(next_name) + if self.next_page: + current_next = self.parentApp.getForm(self.next_page) + current_next.prev_page = next_name + new_next.next_page = self.next_page + new_next.prev_page = self.this_page + self.next_page = next_name + + def add_prev(self, prev_name): + new_prev = self.parentApp.getForm(prev_name) + if self.prev_page: + current_prev = self.parentApp.getForm(self.prev_page) + current_prev.next_page = prev_name + new_prev.prev_page = self.prev_page + new_prev.next_page = self.this_page + self.prev_page = prev_name + + def prune(self): + if self.next_page: + next_form = self.parentApp.getForm(self.next_page) + next_form.prev_page = self.prev_page + if self.prev_page: + prev_form = self.parentApp.getForm(self.prev_page) + prev_form.next_page = self.next_page + self.parentApp.removeForm(self.this_page) + + class App(npyscreen.NPSAppManaged): # STARTING_FORM = 'SKILLS' character = None @@ -63,17 +106,31 @@ class App(npyscreen.NPSAppManaged): def onStart(self): self.character = character.Character() - self.addForm("MAIN", BasicInfoForm, name="Basic Info:") - self.addForm("RACE", RaceForm, name="Select your character's race:") - self.addForm("CLASS1", CharacterClassForm, name="Select your character's primary class:") - self.addForm("BACKGROUND", BackgroundForm, name="Choose background:") - self.addForm("ALIGNMENT", AlignmentForm, name="Select your character's alignment:") - self.addForm("ABILITIES", AbilityScoreForm, name="Choose ability scores:") - self.addForm("SKILLS", SkillForm, name="Choose skill proficiencies") - self.addForm("SAVE", SaveForm, name="Save character:") + self.addForm("MAIN", BasicInfoForm, name="Basic Info:", formid='MAIN') + self.addForm("RACE", RaceForm, name="Select your character's race:", + formid='RACE') + self.addForm("CLASS1", CharacterClassForm, name="Select your character's primary class:", + formid='CLASS1') + self.addForm("BACKGROUND", BackgroundForm, name="Choose background:", + formid='BACKGROUND') + self.addForm("ALIGNMENT", AlignmentForm, + name="Select your character's alignment:", + formid='ALIGNMENT') + self.addForm("ABILITIES", AbilityScoreForm, + name="Choose ability scores:", formid='ABILITIES') + self.addForm("SKILLS", SkillForm, name="Choose skill proficiencies", + formid='SKILLS') + self.addForm("SAVE", SaveForm, name="Save character:", formid='SAVE') + + # Initialized the DoublyLinkedList + forms = ['MAIN', 'RACE', 'CLASS1', 'BACKGROUND', + 'ALIGNMENT', 'ABILITIES', 'SKILLS', 'SAVE'] + for i in range(len(forms)-1): + form = self.getForm(forms[i]) + form.add_next(forms[i+1]) -class BasicInfoForm(npyscreen.ActionForm): +class BasicInfoForm(LinkedListForm): def create(self): self.name = self.add( npyscreen.TitleText, name="Character Name:", use_two_lines=False) @@ -91,18 +148,13 @@ class BasicInfoForm(npyscreen.ActionForm): save_form.filename.value = filename self.parentApp.character.name = self.name.value self.parentApp.character.player_name = self.player_name.value - # Move to the next form - self.parentApp.setNextForm('RACE') + super().to_next() def on_cancel(self): raise KeyboardInterrupt -class RaceForm(npyscreen.ActionForm): - prev_page = 'MAIN' - this_page = 'RACE' - next_page = 'CLASS1' - +class RaceForm(LinkedListForm): def create(self): self.race = self.add( npyscreen.TitleSelectOne, name="Race:", values=tuple(races.keys())) @@ -112,17 +164,14 @@ class RaceForm(npyscreen.ActionForm): selected_race = self.race.get_selected_objects()[0] SelectedRace = races[selected_race] log.debug('Selected character race: %s', SelectedRace.name) - self.parentApp.character.race = SelectedRace() - self.parentApp.setNextForm(self.next_page) - + self.parentApp.character.race = SelectedRace + super().to_next() + def on_cancel(self): - self.parentApp.setNextForm(self.prev_page) + super().to_prev() -class CharacterClassForm(npyscreen.ActionForm): - prev_page = 'RACE' - this_page = 'CLASS1' - next_page = 'BACKGROUND' +class CharacterClassForm(LinkedListForm): class_num = 1 def __init__(self, num=1, **kwargs): @@ -153,7 +202,7 @@ class CharacterClassForm(npyscreen.ActionForm): self.class_options = list(char_classes.keys()) for c in self.parentApp.character.class_list[:self.class_num-1]: self.class_options.remove(c.name) - self.character_class.values = tuple(self.class_options) + self.character_class.values = sorted(tuple(self.class_options)) self.character_class.update() def create(self): @@ -167,14 +216,12 @@ class CharacterClassForm(npyscreen.ActionForm): t = 'Class #{:d}:'.format(self.class_num) for c in self.parentApp.character.class_list: self.class_options.remove(c.name) - self.level = self.add( - npyscreen.TitleText, name='Level:', value="1", use_two_lines=False) - self.subclass = self.add(npyscreen.Checkbox, name="Choose a Subclass?", value=False) if self.class_num == 1: self.multiclass = self.add(npyscreen.Checkbox, name="Add Multiclass?".format(self.class_num + 1), value=False) else: self.multiclass = self.add(npyscreen.Checkbox, name="Add Class #{:d}?".format(self.class_num + 1), value=False) - self.this_page = 'CLASS{:d}'.format(self.class_num) + self.level = self.add( + npyscreen.TitleText, name='Level:', value="1", use_two_lines=False) self.character_class = self.add( npyscreen.TitleSelectOne, name=t, values=tuple(self.class_options)) @@ -183,11 +230,9 @@ class CharacterClassForm(npyscreen.ActionForm): new_form = self.parentApp.addForm(new_name, CharacterClassForm, name="Select your character's Class #{:d}:".format(self.class_num + 1), - num=self.class_num+1) - self.parentApp.getForm(self.next_page).prev_page = new_name - new_form.next_page = self.next_page - new_form.prev_page = self.this_page - self.next_page = new_name + num=self.class_num+1, + formid=new_name) + self.add_next(new_name) return new_form def add_subclass_page(self, newclass, level): @@ -197,11 +242,9 @@ class CharacterClassForm(npyscreen.ActionForm): name="Select your {:s} Subclass".format(newclass.name), newclass=newclass, level=level, - num=self.class_num) - self.parentApp.getForm(self.next_page).prev_page = new_name - new_form.next_page = self.next_page - new_form.prev_page = self.this_page - self.next_page = new_name + num=self.class_num, + formid=new_name) + self.add_next(new_name) return new_form def on_ok(self): @@ -209,13 +252,11 @@ class CharacterClassForm(npyscreen.ActionForm): selected_class = self.character_class.get_selected_objects()[0] selected_class = char_classes[selected_class] log.debug('Selected character class %s', selected_class.name) - new_class = selected_class(level=int(self.level.value), - subclass=None) - if len(self.parentApp.character.class_list) < self.class_num: - self.parentApp.character.class_list.append(new_class) - else: - # replace existing character if we've backed up - self.parentApp.character.class_list[self.class_num-1] = new_class + # replace later classes if we've backed up + self.parentApp.character.class_list = self.parentApp.character.class_list[:self.class_num-1] + self.parentApp.character.add_class(cls=selected_class, + level=int(self.level.value), + subclass=None) # add multiclass page if not exists yet if self.multiclass.value: if self.next_multiclass_page is None: @@ -224,22 +265,24 @@ class CharacterClassForm(npyscreen.ActionForm): self.next_multiclass_page.update_options() else: # in case returned a page, prune any future multiclasses - self.next_page = "BACKGROUND" - self.parentApp.getForm("BACKGROUND").prev_page = self.this_page - self.parentApp.character.class_list = self.parentApp.character.class_list[:self.class_num] - if self.subclass.value: - self.add_subclass_page(newclass=selected_class, - level=int(self.level.value)) - self.parentApp.setNextForm(self.next_page) + while self.next_page != 'BACKGROUND': + f = self.parentApp.getForm(self.next_page) + f.prune() + if int(self.level.value) >= selected_class.subclass_select_level: + if not self.subclass_page: + self.add_subclass_page(newclass=selected_class, + level=int(self.level.value)) + else: + if self.subclass_page is not None: + f = self.parentApp.getForm(self.next_page) + f.prune() + super().to_next() def on_cancel(self): - self.parentApp.setNextForm(self.prev_page) + super().to_prev() -class SubclassForm(npyscreen.ActionForm): - prev_page = 'CLASS1' - next_page = 'BACKGROUND' - +class SubclassForm(LinkedListForm): def __init__(self, newclass, level, num=1, **kwargs): self.class_num = num self.parent_class = newclass @@ -256,25 +299,21 @@ class SubclassForm(npyscreen.ActionForm): values=tuple(self.subclass_options)) def on_ok(self): - sc = self.subclass.get_selected_objects()[0] - if sc in [None, '', 'None']: - newclass = self.parent_class(level=self.level, - subclass=None) - else: - newclass = self.parent_class(level=self.level, - subclass=sc) - self.parentApp.character.class_list[self.class_num-1] = newclass - self.parentApp.setNextForm(self.next_page) - + if self.subclass.value is not None: + sc = self.subclass.get_selected_objects()[0] + if sc in [None, '', 'None']: + sc = None + self.parentApp.character.class_list = self.parentApp.character.class_list[:self.class_num-1] + self.parentApp.character.add_class(cls=self.parent_class, + level=self.level, + subclass=sc) + super().to_next() + def on_cancel(self): - self.parentApp.setNextForm(self.prev_page) + super().to_prev() -class BackgroundForm(npyscreen.ActionForm): - prev_page = 'CLASS1' - this_page = 'BACKGROUND' - next_page = 'ALIGNMENT' - +class BackgroundForm(LinkedListForm): def create(self): self.background = self.add( npyscreen.TitleSelectOne, @@ -290,21 +329,17 @@ class BackgroundForm(npyscreen.ActionForm): languages = Background.languages + race_languages self.parentApp.character.languages = ', '.join(languages) log.debug("Selected character background: %s", Background.name) - self.parentApp.setNextForm(self.next_page) + super().to_next() def on_cancel(self): - self.parentApp.setNextForm(self.prev_page) + super().to_prev() -class AlignmentForm(npyscreen.ActionForm): +class AlignmentForm(LinkedListForm): """Choose your character's alignment.""" alignments = ('Lawful good', 'Neutral good', 'Chaotic good', 'Lawful neutral', 'True neutral', 'Chaotic neutral', 'Lawful evil', 'Neutral evil', 'Chaotic evil', ) - prev_page = 'BACKGROUND' - this_page = 'ALIGNMENT' - next_page = 'ABILITIES' - def create(self): self.alignment = self.add( npyscreen.TitleSelectOne, name="Alignment:", values=self.alignments) @@ -317,16 +352,13 @@ class AlignmentForm(npyscreen.ActionForm): # prep additions to abilities page abils = self.parentApp.getForm('ABILITIES') abils.prep() - self.parentApp.setNextForm(self.next_page) + super().to_next() def on_cancel(self): - self.parentApp.setNextForm(self.prev_page) + super().to_prev() -class AbilityScoreForm(npyscreen.ActionForm): - prev_page = 'ALIGNMENT' - this_page = 'ABILITIES' - next_page = 'SKILLS' +class AbilityScoreForm(LinkedListForm): num_rolls = 0 def roll_dice(self): @@ -348,7 +380,7 @@ class AbilityScoreForm(npyscreen.ActionForm): self.score_options.value = str(new_scores)[1:-1] self.score_options.update() self.reroll_button.value = False - self.reroll_button.name = 'Reroll ({:d}x):'.format(self.num_rolls) + self.reroll_button.name = 'Reroll' self.reroll_button.update() self.default_button.value = False self.default_button.update() @@ -403,7 +435,7 @@ class AbilityScoreForm(npyscreen.ActionForm): name="Use Default Rolls", when_pressed_function=self.set_default) self.reroll_button = self.add(npyscreen.MiniButtonPress, - name="Reroll (0x)", + name="Reroll", when_pressed_function=self.reroll) def prep(self): @@ -414,7 +446,7 @@ class AbilityScoreForm(npyscreen.ActionForm): self.race_text = self.add(npyscreen.FixedText, editable=False, value="Do not add racial bonuses, they will be added for you as listed.") for attr in attrs: - if attr in self.parentApp.character.saving_throw_proficiencies: + if attr in self.parentApp.character.primary_class.primary_abilities: name = '**' + attr else: name = '' + attr @@ -431,17 +463,13 @@ class AbilityScoreForm(npyscreen.ActionForm): self.max_hp = self.add(npyscreen.TitleText, name="Max HP:") def on_ok(self): - self.parentApp.setNextForm(self.next_page) + super().to_next() def on_cancel(self): - self.parentApp.setNextForm(self.prev_page) + super().to_prev() -class SkillForm(npyscreen.ActionForm): - prev_page = 'ABILITIES' - this_page = 'SKILLS' - next_page = 'SAVE' - +class SkillForm(LinkedListForm): def while_editing(self): # Update the static skills for race and background bg_skills = self.parentApp.character.background.skill_proficiencies @@ -454,7 +482,7 @@ class SkillForm(npyscreen.ActionForm): self.parentApp.character.background.skill_choices) static_skills = bg_skills + race_skills choices = set([c for c in choices if c.lower() not in static_skills]) - self.skill_proficiencies.set_values(tuple(choices)) + self.skill_proficiencies.set_values(sorted(tuple(choices))) self.update_remaining() def update_remaining(self, widget=None): @@ -493,17 +521,13 @@ class SkillForm(npyscreen.ActionForm): all_skills = new_skills + bg_skills + race_skills self.parentApp.character.skill_proficiencies = all_skills log.debug(f"Skill proficiencies: {all_skills}") - self.parentApp.setNextForm(self.next_page) + super().to_next() def on_cancel(self): - self.parentApp.setNextForm(self.prev_page) + super().to_prev() -class SaveForm(npyscreen.ActionForm): - prev_page = 'SKILLS' - this_page = 'SAVE' - next_page = None - +class SaveForm(LinkedListForm): def create(self): self.filename = self.add( npyscreen.TitleText, name='Filename:') @@ -513,10 +537,10 @@ class SaveForm(npyscreen.ActionForm): value="After saving, edit this file to finish your personality, etc.") def on_ok(self): - self.parentApp.setNextForm(self.next_page) + super().to_next() def on_cancel(self): - self.parentApp.setNextForm(self.prev_page) + super().to_prev() def main(): diff --git a/dungeonsheets/features/features.py b/dungeonsheets/features/features.py index e5fc6f5..e22f3ea 100644 --- a/dungeonsheets/features/features.py +++ b/dungeonsheets/features/features.py @@ -32,7 +32,7 @@ class Feature(): spells_prepared = () needs_implementation = False # Set to True if need to find way to compute stats - def __init__(self, owner): + def __init__(self, owner=None): self.owner = owner def __eq__(self, other): diff --git a/dungeonsheets/features/monk.py b/dungeonsheets/features/monk.py index 547ec4e..bb52382 100644 --- a/dungeonsheets/features/monk.py +++ b/dungeonsheets/features/monk.py @@ -46,12 +46,7 @@ class MartialArts(Feature): def __init__(self, owner): self.owner = owner - if self.owner.level >= 5: - self.die = 'd6' - if self.owner.level >= 11: - self.die = 'd8' - if self.owner.level >= 17: - self.die = 'd10' + self.level = owner.Monk.level def weapon_func(self, weapon: weapons.Weapon, char=None, **kwargs): """ @@ -63,6 +58,13 @@ class MartialArts(Feature): return weapon if char is None: return weapon + self.die = 'd4' + if self.level >= 5: + self.die = 'd6' + if self.level >= 11: + self.die = 'd8' + if self.level >= 17: + self.die = 'd10' # check if new damage is better than default if self.die > int(weapon.base_damage.split('d')[-1]): weapon.base_damage = '1d' + str(self.die) @@ -81,15 +83,20 @@ class UnarmoredMovement(Feature): """ name = "Unarmored Movement" source = "Monk" - speed_bonus = 10 def __init__(self, owner): self.owner = owner - if self.owner.level >= 6: - self.speed_bonus = 15 - if self.owner.level >= 10: - self.speed_bonus = 20 - if self.owner.level >= 14: - self.speed_bonus = 25 - if self.owner.level >= 18: - self.speed_bonus = 30 + self.level = owner.Monk.level + + @property + def speed_bonus(self): + _speed_bonus = 10 + if self.level >= 6: + _speed_bonus = 15 + if self.level >= 10: + _speed_bonus = 20 + if self.level >= 14: + _speed_bonus = 25 + if self.level >= 18: + _speed_bonus = 30 + return _speed_bonus diff --git a/dungeonsheets/features/ranger.py b/dungeonsheets/features/ranger.py index 2593eba..69c3f26 100644 --- a/dungeonsheets/features/ranger.py +++ b/dungeonsheets/features/ranger.py @@ -2,18 +2,18 @@ from .features import Feature, FeatureSelector from .. import (weapons, armor) -def select_ranger_fighting_style(feature_choices=[]): +def select_ranger_fighting_style(char=None, feature_choices=[]): lower_choices = [fc for fc in map(str.lower, feature_choices)] if 'archery' in lower_choices: - return Archery() + return Archery(owner=char) elif 'defense' in lower_choices: - return Defense() + return Defense(owner=char) elif 'dueling' in lower_choices: - return Dueling() + return Dueling(owner=char) elif 'two-weapon fighting' in lower_choices: - return TwoWeaponFighting() + return TwoWeaponFighting(owner=char) else: - return RangerFightingStyle() + return RangerFightingStyle(owner=char) class Archery(Feature): diff --git a/dungeonsheets/forms/features_template.tex b/dungeonsheets/forms/features_template.tex index 5869438..9450273 100644 --- a/dungeonsheets/forms/features_template.tex +++ b/dungeonsheets/forms/features_template.tex @@ -5,7 +5,7 @@ \usepackage[dvipsnames]{color} \definecolor{mygrey}{gray}{0.7} -\title{Features and Subclass} +\title{Features and Magic Items} \author{[[ character.name ]]} \date{} @@ -36,4 +36,20 @@ [% endfor %] +[% for mitem in character.magic_items %] + + \section*{[[ mitem.name ]]} + + \noindent + \textbf{Requires Attunement:} [[ mitem.requires_attunement ]] \\ + \textbf{Rarity:} [[ mitem.rarity ]] \\ + + [% if mitem.needs_implementation %] % + \textbf{**Not included in stats on Character Sheet} % + [% endif %] % + + [[ mitem.__doc__|rst_to_latex ]] + + [% endfor %] + \end{document} diff --git a/dungeonsheets/magic_items.py b/dungeonsheets/magic_items.py index 9226e97..d4e00c4 100644 --- a/dungeonsheets/magic_items.py +++ b/dungeonsheets/magic_items.py @@ -6,6 +6,7 @@ class MagicItem(): name = '' ac_bonus = 0 requires_attunement = False + needs_implementation = False rarity = '' diff --git a/dungeonsheets/race.py b/dungeonsheets/race.py index b9a93f6..0bda2cf 100644 --- a/dungeonsheets/race.py +++ b/dungeonsheets/race.py @@ -26,7 +26,7 @@ class Race(): spells_known = () spells_prepared = () - def __init__(self, owner): + def __init__(self, owner=None): self.owner = owner cls = type(self) # Instantiate the features diff --git a/dungeonsheets/stats.py b/dungeonsheets/stats.py index 165df26..7c966ce 100644 --- a/dungeonsheets/stats.py +++ b/dungeonsheets/stats.py @@ -1,7 +1,6 @@ import math from collections import namedtuple from .armor import NoArmor, NoShield, HeavyArmor -from . import (weapons) from .features import (UnarmoredDefenseMonk, UnarmoredDefenseBarbarian, DraconicResilience, Defense, FastMovement, UnarmoredMovement) diff --git a/dungeonsheets/weapons.py b/dungeonsheets/weapons.py index c5f689c..7111370 100644 --- a/dungeonsheets/weapons.py +++ b/dungeonsheets/weapons.py @@ -1,6 +1,3 @@ -from .stats import mod_str - - class Weapon(): name = "" cost = "0 gp" @@ -17,7 +14,7 @@ class Weapon(): def damage(self): dam_str = str(self.base_damage) if self.bonus_damage != 0: - dam_str += mod_str(self.bonus_damage) + dam_str += '{:+d}'.format(self.bonus_damage) return dam_str def __str__(self):