def p_unit_favorite(t): '''unit : unit FAVORITE''' unit = Unit(t[1].name, initiative=t[1].initiative, initiative_mod=t[1].initiative_mod, hp=t[1].hp, armor=t[1].armor, note=t[1].note, status=t[1].status, favorite=True) t[0] = unit
def p_unit_status(t): '''unit : unit STATUS status''' unit = Unit(t[1].name, initiative=t[1].initiative, initiative_mod=t[1].initiative_mod, hp=t[1].hp, armor=t[1].armor, note=t[1].note, status=[t[3]], favorite=t[1].favorite) t[0] = unit
def p_unit_note(t): '''unit : unit NOTE NAME''' unit = Unit(t[1].name, initiative=t[1].initiative, initiative_mod=t[1].initiative_mod, hp=t[1].hp, armor=t[1].armor, note=t[3], status=t[1].status, favorite=t[1].favorite) t[0] = unit
def p_unit_hp(t): '''unit : unit HEALTH expression''' unit = Unit(t[1].name, initiative=t[1].initiative, initiative_mod=t[1].initiative_mod, hp=t[3], armor=t[1].armor, note=t[1].note, status=t[1].status, favorite=t[1].favorite) t[0] = unit
def p_unit_armor(t): '''unit : unit ARMOR expression''' unit = Unit(t[1].name, initiative=t[1].initiative, initiative_mod=t[1].initiative_mod, hp=t[1].hp, armor=t[3], note=t[1].note, status=t[1].status, favorite=t[1].favorite) t[0] = unit
def p_unit(t): '''unit : NAME expression''' unit = Unit(t[1], initiative=rollInitiative(t[2]), initiative_mod=t[2], hp=0, armor=0, note="", status=[], favorite=False) t[0] = unit
def p_command_load_item(t): 'command : LOAD NAME' global encounter try: attributes = encounter.file_manager.load(FILE_TEMPLATE.format(t[2])) unit = Unit(**attributes) encounter.addUnit(unit) except Exception as e: print(e) print("Error loading item {}".format(t[2])) print(str(encounter))
def p_command_load_favorites(t): 'command : LOAD FAVORITE' global encounter for file in FAVORITE_FILES: try: attributes = encounter.file_manager.load(FILE_TEMPLATE.format(file)) unit = Unit(**attributes) encounter.addUnit(unit) print(str(encounter)) except Exception as e: print(e) print("Error loading {}".format(file))
def p_command_load_encounter(t): 'command : LOAD' global encounter try: last_encounter = encounter.file_manager.load(FILE_TEMPLATE.format(LAST_ENCOUNTER)) for name in last_encounter: attributes = encounter.file_manager.load(FILE_TEMPLATE.format(name)) unit = Unit(**attributes) encounter.addUnit(unit) except Exception as e: print(e) print("Error loading last encounter") print(str(encounter))
def p_command_create_multiple_units(t): 'command : CREATE expression unit' global encounter unit = t[3] num = t[2] for i in range(num): new_unit = Unit(unit.name + str(i+1), initiative=rollInitiative(unit.initiative_mod), initiative_mod=unit.initiative_mod, hp=unit.hp, armor=unit.armor, note=unit.note, status=unit.status, favorite=unit.favorite) encounter.addUnit(new_unit) encounter.sortUnits() print(str(encounter))