162 lines
4.4 KiB
Python
162 lines
4.4 KiB
Python
from dataclasses import dataclass, field
|
|
from typing import List, Dict, Any
|
|
|
|
@dataclass
|
|
class Character:
|
|
name: str = ""
|
|
level: int = 0
|
|
race: str = ""
|
|
subrace: str = ""
|
|
class_: str = ""
|
|
subclass: str = ""
|
|
background: str = ""
|
|
alignment: str = ""
|
|
size: str = ""
|
|
age: int = 0
|
|
gender: str = ""
|
|
height: str = ""
|
|
weight: int = 0
|
|
deity: str = ""
|
|
|
|
strength_base: int = 0
|
|
dexterity_base: int = 0
|
|
constitution_base: int = 0
|
|
intelligence_base: int = 0
|
|
wisdom_base: int = 0
|
|
charisma_base: int = 0
|
|
armor_base: int = 0
|
|
|
|
strength: int = 0
|
|
dexterity: int = 0
|
|
constitution: int = 0
|
|
intelligence: int = 0
|
|
wisdom: int = 0
|
|
charisma: int = 0
|
|
armor: int = 0
|
|
|
|
strength_modifier: int = 0
|
|
dexterity_modifier: int = 0
|
|
constitution_modifier: int = 0
|
|
intelligence_modifier: int = 0
|
|
wisdom_modifier: int = 0
|
|
charisma_modifier: int = 0
|
|
|
|
proficiency: int = 0
|
|
inspiration: bool = False
|
|
experience: int = 0
|
|
|
|
proficiencies_armor: List[str] = field(default_factory=list)
|
|
proficiencies_weapons: List[str] = field(default_factory=list)
|
|
proficiencies_tools: List[str] = field(default_factory=list)
|
|
languages: List[str] = field(default_factory=list)
|
|
|
|
strength_save: int = 0
|
|
dexterity_save: int = 0
|
|
constitution_save: int = 0
|
|
intelligence_save: int = 0
|
|
wisdom_save: int = 0
|
|
charisma_save: int = 0
|
|
|
|
hp: int = 0
|
|
hp_max: int = 0
|
|
hp_temp: int = 0
|
|
hit_die: str = ""
|
|
initiative: int = 0
|
|
|
|
deathsaves_successes: int = 0
|
|
deathsaves_failures: int = 0
|
|
|
|
fire_resistance: bool = False
|
|
poison_resistance: bool = False
|
|
psychic_resistance: bool = False
|
|
cold_resistance: bool = False
|
|
thunder_resistance: bool = False
|
|
acid_resistance: bool = False
|
|
force_resistance: bool = False
|
|
radiant_resistance: bool = False
|
|
necrotic_resistance: bool = False
|
|
bludgeoning_resistance: bool = False
|
|
piercing_resistance: bool = False
|
|
slashing_resistance: bool = False
|
|
immunities: List[str] = field(default_factory=list)
|
|
vulnerabilities: List[str] = field(default_factory=list)
|
|
|
|
speed_base: int = 0
|
|
speed_type: List[str] = field(default_factory=list)
|
|
darkvision: int = 0
|
|
blindsight: int = 0
|
|
tremorsense: int = 0
|
|
truesight: int = 0
|
|
passive_perception: int = 0
|
|
|
|
athletics: int = 0
|
|
acrobatics: int = 0
|
|
sleight_of_hand: int = 0
|
|
stealth: int = 0
|
|
arcana: int = 0
|
|
history: int = 0
|
|
investigation: int = 0
|
|
nature: int = 0
|
|
religion: int = 0
|
|
animal_handling: int = 0
|
|
insight: int = 0
|
|
medicine: int = 0
|
|
perception: int = 0
|
|
survival: int = 0
|
|
deception: int = 0
|
|
intimidation: int = 0
|
|
performance: int = 0
|
|
persuasion: int = 0
|
|
|
|
athletics_passive: int = 0
|
|
acrobatics_passive: int = 0
|
|
sleight_of_hand_passive: int = 0
|
|
stealth_passive: int = 0
|
|
arcana_passive: int = 0
|
|
history_passive: int = 0
|
|
investigation_passive: int = 0
|
|
nature_passive: int = 0
|
|
religion_passive: int = 0
|
|
animal_handling_passive: int = 0
|
|
insight_passive: int = 0
|
|
medicine_passive: int = 0
|
|
perception_passive: int = 0
|
|
survival_passive: int = 0
|
|
deception_passive: int = 0
|
|
intimidation_passive: int = 0
|
|
performance_passive: int = 0
|
|
persuasion_passive: int = 0
|
|
passive_perception: int = 0
|
|
passive_investigation: int = 0
|
|
passive_insight: int = 0
|
|
|
|
spellcasting_ability: str = ""
|
|
spell_save_dc: int = 0
|
|
spell_attack_bonus: int = 0
|
|
known_spells: List[str] = field(default_factory=list)
|
|
prepared_spells: List[str] = field(default_factory=list)
|
|
spell_slots: Dict[str, Any] = field(default_factory=dict)
|
|
cantrips: List[str] = field(default_factory=list)
|
|
spellcasting_class: str = ""
|
|
|
|
exhaustion_level: int = 0
|
|
conditions_active: List[str] = field(default_factory=list)
|
|
|
|
cp: int = 0
|
|
sp: int = 0
|
|
ep: int = 0
|
|
gp: int = 0
|
|
pp: int = 0
|
|
equipment: List[str] = field(default_factory=list)
|
|
|
|
features: List[str] = field(default_factory=list)
|
|
feats: List[str] = field(default_factory=list)
|
|
traits: List[str] = field(default_factory=list)
|
|
personality_traits: List[str] = field(default_factory=list)
|
|
ideals: List[str] = field(default_factory=list)
|
|
bonds: List[str] = field(default_factory=list)
|
|
flaws: List[str] = field(default_factory=list)
|
|
|
|
notes: str = ""
|
|
custom_attributes: Dict[str, Any] = field(default_factory=dict)
|