Skip to content

SpellSlots

spell_slots

SpellSlots dataclass

Immutable container for spell slot counts.

Each field represents the number of available spell slots for a given spell level.

Attributes:

Name Type Description
level_1 int

Number of level 1 spell slots

level_2 int

Number of level 2 spell slots

level_3 int

Number of level 3 spell slots

level_4 int

Number of level 4 spell slots

level_5 int

Number of level 5 spell slots

Source code in src/rpgleveler/core/spell_slots.py
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@dataclass(frozen=True)
class SpellSlots:
    """
    Immutable container for spell slot counts.

    Each field represents the number of available spell slots for a given spell
    level.

    Attributes:
        level_1: Number of level 1 spell slots
        level_2: Number of level 2 spell slots
        level_3: Number of level 3 spell slots
        level_4: Number of level 4 spell slots
        level_5: Number of level 5 spell slots
    """
    level_1: int
    level_2: int
    level_3: int
    level_4: int
    level_5: int

    def to_dict(self) -> dict[str, int]:
        return vars(self)

    @classmethod
    def from_dict(cls, data: dict[str, int]) -> SpellSlots:
        return cls(**data)