gammatools/models.py

68 lines
1.7 KiB
Python
Raw Normal View History

from flask_restx import fields
# Common fields
2024-06-22 13:22:39 +00:00
chartype_field = fields.String(
required=True,
default="human",
2024-06-24 08:35:29 +00:00
description='Character type. Allowed values: "human", "humanoid", "mutant", "cyborg"'
)
2024-06-24 08:35:29 +00:00
conscore_field = fields.Integer(
required=True,
2024-06-24 08:35:29 +00:00
default=10,
min=3,
max=18,
description='The characters constitution score'
2024-06-24 08:35:29 +00:00
)
# Mutations Model
mutation_model = {
'conscore': conscore_field,
'intscore': fields.Integer(
required=True,
default=3,
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,
2024-06-23 17:44:55 +00:00
'ability': fields.String(
required=False,
default="all",
2024-06-24 08:35:29 +00:00
description='The ability to roll. Not required. Defaults to "all".'),
}
# Hp model
hp_model = {
'chartype': chartype_field,
2024-06-24 08:35:29 +00:00
'conscore': conscore_field
}
2024-06-22 13:22:39 +00:00
2024-06-23 11:13:42 +00:00
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 Strength'),
}
2024-06-22 13:22:39 +00:00
character_model = {
'chartype': chartype_field,
}
2024-06-22 22:56:55 +00:00
encounter_model = {
'terrain': fields.String(
required=True,
default="clear",
description='The terrain being traversed by the party when the encounter roll is made'
)
}