Bases: StarterTemplate
Planar template for Planar and Phenomenon cards introduced in the Planechase block.
Todo
Needs a complete rework and a 'Modifier' class.
Source code in src\templates\planar.py
24
25
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
86
87
88
89
90 | class PlanarTemplate (StarterTemplate):
"""Planar template for Planar and Phenomenon cards introduced in the Planechase block.
Todo:
Needs a complete rework and a 'Modifier' class.
"""
def __init__(self, layout: CardLayout, **kwargs):
CFG.exit_early = True
super().__init__(layout, **kwargs)
@auto_prop_cached
def text_layer_static_ability(self) -> ArtLayer:
return psd.getLayer(LAYERS.STATIC_ABILITY, self.text_group)
@auto_prop_cached
def text_layer_chaos_ability(self) -> ArtLayer:
return psd.getLayer(LAYERS.CHAOS_ABILITY, self.text_group)
def basic_text_layers(self):
"""No mana cost, don't scale name layer."""
self.text.extend([
text_classes.TextField(
layer = self.text_layer_name,
contents = self.layout.name
),
text_classes.ScaledTextField(
layer = self.text_layer_type,
contents = self.layout.type_line,
reference = self.type_reference
)
])
def rules_text_and_pt_layers(self):
# Phenomenon card?
if self.layout.type_line == LAYERS.PHENOMENON:
# Insert oracle text into static ability layer and disable chaos ability & layer mask on textbox
self.text.append(
text_classes.FormattedTextField(
layer = self.text_layer_static_ability,
contents = self.layout.oracle_text
)
)
psd.enable_mask(psd.getLayerSet(LAYERS.TEXTBOX))
psd.getLayer(LAYERS.CHAOS_SYMBOL, self.text_group).visible = False
self.text_layer_chaos_ability.visible = False
else:
# Split oracle text on last line break, insert everything before into static, the rest into chaos
linebreak_index = self.layout.oracle_text.rindex("\n")
self.text.extend([
text_classes.FormattedTextField(
layer = self.text_layer_static_ability,
contents = self.layout.oracle_text[0:linebreak_index]
),
text_classes.FormattedTextField(
layer = self.text_layer_chaos_ability,
contents = self.layout.oracle_text[linebreak_index+1:]
),
])
def paste_scryfall_scan(self, rotate: bool = False, visible: bool = False) -> Optional[ArtLayer]:
"""Ensure we rotate the scan for Planar cards."""
return super().paste_scryfall_scan(rotate=True, visible=visible)
|
Functions
basic_text_layers()
No mana cost, don't scale name layer.
Source code in src\templates\planar.py
43
44
45
46
47
48
49
50
51
52
53
54
55 | def basic_text_layers(self):
"""No mana cost, don't scale name layer."""
self.text.extend([
text_classes.TextField(
layer = self.text_layer_name,
contents = self.layout.name
),
text_classes.ScaledTextField(
layer = self.text_layer_type,
contents = self.layout.type_line,
reference = self.type_reference
)
])
|
paste_scryfall_scan(rotate: bool = False, visible: bool = False) -> Optional[ArtLayer]
Ensure we rotate the scan for Planar cards.
Source code in src\templates\planar.py
| def paste_scryfall_scan(self, rotate: bool = False, visible: bool = False) -> Optional[ArtLayer]:
"""Ensure we rotate the scan for Planar cards."""
return super().paste_scryfall_scan(rotate=True, visible=visible)
|