Skip to content

MutateMod

src.templates.mutate.MutateMod

Bases: NormalTemplate

  • A modifier for mutate cards introduced in Ikoria: Lair of Behemoths.
Adds
  • Mutate text layer for mutate ability.
Source code in src\templates\mutate.py
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
class MutateMod (NormalTemplate):
    """
    * A modifier for mutate cards introduced in Ikoria: Lair of Behemoths.

    Adds:
        * Mutate text layer for mutate ability.
    """

    """
    * Mixin Methods
    """

    @auto_prop_cached
    def text_layer_methods(self) -> list[Callable]:
        """Add Mutate text layers."""
        funcs = [self.text_layers_mutate] if isinstance(self.layout, MutateLayout) else []
        return [*super().text_layer_methods, *funcs]

    """
    * Mutate Text Layers
    """

    @auto_prop_cached
    def text_layer_mutate(self) -> Optional[ArtLayer]:
        """Text layer containing the mutate text."""
        return psd.getLayer(LAYERS.MUTATE, self.text_group)

    """
    * Mutate References
    """

    @auto_prop_cached
    def mutate_reference(self) -> Optional[ReferenceLayer]:
        """Mutate textbox reference."""
        return psd.get_reference_layer(LAYERS.MUTATE_REFERENCE, self.text_group)

    """
    * Processing Methods
    """

    def process_layout_data(self) -> None:
        """Remove reminder text for mutate text if required."""
        if CFG.remove_reminder:
            self.layout.mutate_text = strip_reminder_text(
                self.layout.mutate_text)
        super().process_layout_data()

    """
    * Mutate Text Layer Methods
    """

    def text_layers_mutate(self):
        """Add text layers required by Mutate cards."""

        # Add mutate text
        self.text.append(
            text_classes.FormattedTextArea(
                layer = self.text_layer_mutate,
                contents = self.layout.mutate_text,
                reference = self.mutate_reference))

Functions

mutate_reference() -> Optional[ReferenceLayer]

Mutate textbox reference.

Source code in src\templates\mutate.py
57
58
59
60
@auto_prop_cached
def mutate_reference(self) -> Optional[ReferenceLayer]:
    """Mutate textbox reference."""
    return psd.get_reference_layer(LAYERS.MUTATE_REFERENCE, self.text_group)

process_layout_data() -> None

Remove reminder text for mutate text if required.

Source code in src\templates\mutate.py
66
67
68
69
70
71
def process_layout_data(self) -> None:
    """Remove reminder text for mutate text if required."""
    if CFG.remove_reminder:
        self.layout.mutate_text = strip_reminder_text(
            self.layout.mutate_text)
    super().process_layout_data()

text_layer_methods() -> list[Callable]

Add Mutate text layers.

Source code in src\templates\mutate.py
38
39
40
41
42
@auto_prop_cached
def text_layer_methods(self) -> list[Callable]:
    """Add Mutate text layers."""
    funcs = [self.text_layers_mutate] if isinstance(self.layout, MutateLayout) else []
    return [*super().text_layer_methods, *funcs]

text_layer_mutate() -> Optional[ArtLayer]

Text layer containing the mutate text.

Source code in src\templates\mutate.py
48
49
50
51
@auto_prop_cached
def text_layer_mutate(self) -> Optional[ArtLayer]:
    """Text layer containing the mutate text."""
    return psd.getLayer(LAYERS.MUTATE, self.text_group)

text_layers_mutate()

Add text layers required by Mutate cards.

Source code in src\templates\mutate.py
77
78
79
80
81
82
83
84
85
def text_layers_mutate(self):
    """Add text layers required by Mutate cards."""

    # Add mutate text
    self.text.append(
        text_classes.FormattedTextArea(
            layer = self.text_layer_mutate,
            contents = self.layout.mutate_text,
            reference = self.mutate_reference))