142 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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'
 | |
| )
 | |
| 
 | |
| check_model = {
 | |
|     'ability_score': fields.Integer(
 | |
|         required=True,
 | |
|         default=10,
 | |
|         min=3,
 | |
|         max=21,
 | |
|         description='The score of the ability to check against'
 | |
|     ),
 | |
|     'multiplier': fields.Integer(
 | |
|         required=True,
 | |
|         default=4,
 | |
|         min=2, max=8,
 | |
|         description='Sets the threshold for the check. In general, the higher the multiplier, the higher the '
 | |
|                     'likelihood of success. Range: 2 - 7'
 | |
|     )
 | |
| }
 | |
| 
 | |
| # 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, default=1, description='The number of dice to roll'),
 | |
|     'geometry': fields.Integer(required=True, default=2, 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. Valid options: "m-strength", "p-strength", '
 | |
|                     '"intelligence", "charisma", "constitution", "dexterity", "all". Defaults to "all".'),
 | |
| }
 | |
| 
 | |
| # Hp model
 | |
| hp_model = {
 | |
|     'chartype': chartype_field,
 | |
|     'conscore': conscore_field
 | |
| }
 | |
| 
 | |
| 
 | |
| pa_model = {
 | |
|     'weapon_attack': fields.Boolean(
 | |
|         required=True,
 | |
|         default=True,
 | |
|         description='Is the attacker using a weapon? If so, To-Hit is based on weapon class.'
 | |
|     ),
 | |
|     'dac': fields.Integer(
 | |
|         required=True,
 | |
|         min=1,
 | |
|         max=10,
 | |
|         default=1,
 | |
|         description='The defenders armour class. This is needed for both weapon attacks and non-weapon attacks'
 | |
|     ),
 | |
|     'awc': fields.Integer(
 | |
|         required=False,
 | |
|         min=1,
 | |
|         max=16,
 | |
|         default=1,
 | |
|         description='The attackers weapon class. This is needed for weapon attacks only.'
 | |
|     ),
 | |
|     'ahd': fields.Integer(
 | |
|         required=False,
 | |
|         min=1,
 | |
|         max=16,
 | |
|         default=1,
 | |
|         description='The attackers hit dice count. This is needed for non-weapon attacks only.'
 | |
|     ),
 | |
|     'modifier': fields.Integer(
 | |
|         required=False,
 | |
|         min=-100,
 | |
|         max=100,
 | |
|         default=0,
 | |
|         description='The roll modifier to be applied to the hit roll.'
 | |
|     )
 | |
| }
 | |
| 
 | |
| 
 | |
| ma_model = {
 | |
|     'ams': fields.Integer(
 | |
|         required=True,
 | |
|         min=3,
 | |
|         max=18,
 | |
|         default=10,
 | |
|         description='Attacker Mental Strength'
 | |
|     ),
 | |
|     'dms': fields.Integer(
 | |
|         required=True,
 | |
|         min=3,
 | |
|         max=18,
 | |
|         default=10,
 | |
|         description='Defender Mental Strength'
 | |
|     ),
 | |
|     'modifier': fields.Integer(
 | |
|         required=False,
 | |
|         min=-100,
 | |
|         max=100,
 | |
|         default=0,
 | |
|         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"'
 | |
|     )
 | |
| }
 |