Files
dungeon-sheets/dungeonsheets/agent.py
T
2021-05-22 23:16:33 -04:00

113 lines
2.8 KiB
Python

from dungeonsheets.stats import Ability, ArmorClass, Initiative, Speed, Skill
class Agent:
"""An actor in an encounter"""
# General attributes
name = ""
alignment = "Neutral"
# Hit points
hp_max = None
# Base stats (ability scores)
strength = Ability()
dexterity = Ability()
constitution = Ability()
intelligence = Ability()
wisdom = Ability()
charisma = Ability()
# Numerical things
armor_class = ArmorClass()
initiative = Initiative()
speed = Speed()
# Proficiencies and Languages
_saving_throw_proficiencies = tuple() # use to overwrite class proficiencies
other_weapon_proficiencies = tuple() # add to class/race proficiencies
skill_proficiencies = list()
skill_expertise = list()
languages = ""
# Skills
acrobatics = Skill(ability="dexterity")
animal_handling = Skill(ability="wisdom")
arcana = Skill(ability="intelligence")
athletics = Skill(ability="strength")
deception = Skill(ability="charisma")
history = Skill(ability="intelligence")
insight = Skill(ability="wisdom")
intimidation = Skill(ability="charisma")
investigation = Skill(ability="intelligence")
medicine = Skill(ability="wisdom")
nature = Skill(ability="intelligence")
perception = Skill(ability="wisdom")
performance = Skill(ability="charisma")
persuasion = Skill(ability="charisma")
religion = Skill(ability="intelligence")
sleight_of_hand = Skill(ability="dexterity")
stealth = Skill(ability="dexterity")
survival = Skill(ability="wisdom")
# Inventory
cp = 0
sp = 0
ep = 0
gp = 0
pp = 0
equipment = ""
weapons = list()
magic_items = list()
armor = None
shield = None
# Magic
spellcasting_ability = None
_spells = list()
_spells_prepared = list()
infusions = list()
# Features IN MAJOR DEVELOPMENT
custom_features = list()
feature_choices = list()
def __init__(self):
pass
@property
def actions(self):
"""All the things I can do in a turn"""
return []
@property
def free_actions(self):
"""Stuff I can do as much as I want in a turn"""
return []
@property
def movement(self):
"""Where I can go in a turn"""
return []
@property
def bonus_actions(self):
"""Things I can do once in addition to an action"""
return []
@property
def reactions(self):
"""Things I can do in response to an action"""
return []
@property
def lair_actions(self):
"""Things I can do at initiative count 20"""
return []
@property
def legendary_actions(self):
"""Things I can do so many times in a turn after another agent acts"""
return []