from flask_restx import fields # Common fields chartype_field = fields.String( required=True, default="human", description='Character type. Allowed values: "human", "humanoid", "mutant", "cyborg"' ) conscore_field = fields.Integer( required=True, default=10, min=3, max=18, description='The characters constitution score' ) # Mutations Model mutation_model = { 'conscore': conscore_field, 'intscore': fields.Integer( required=True, default=10, min=3, max=21, description='The characters intelligence score' ) } # Dice model dice_model = { 'quantity': fields.Integer(required=True, description='The number of dice to roll'), 'geometry': fields.Integer(required=True, description='The number of sides on each die'), 'discard_lowest': fields.Boolean(required=False, default=False, description='Drop the lowest score') } # Ability model ability_model = { 'chartype': chartype_field, 'ability': fields.String( required=False, default="all", description='The ability to roll. Not required. Defaults to "all".'), } # Hp model hp_model = { 'chartype': chartype_field, 'conscore': conscore_field } ma_model = { 'ams': fields.Integer(required=True, description='Attacker Mental Strength'), 'dms': fields.Integer(required=True, description='Defender Mental Strength'), 'modifier': fields.Integer(required=True, description='Modifier For Mental Attack Roll'), } character_model = { 'chartype': chartype_field, } encounter_model = { 'terrain': fields.String( required=True, default="clear", description='The terrain being traversed by the party when the encounter roll is made. Valid values are: ' '"clear", "mountains", "forest", "desert", "watery", "ruins", "deathlands"' ) }