planeswalker

This commit is contained in:
Kyle
2019-12-13 16:59:30 -08:00
parent 7a640610a8
commit 5d7ba8d4b3
38 changed files with 474 additions and 178 deletions

View File

@@ -1,13 +1,13 @@
displayName,imagePath,maskOptions,framePickerOptions displayName,imagePath,maskOptions,framePickerOptions
White,m15WFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Regular White,m15WFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039,Regular
Blue,m15UFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Regular Blue,m15UFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039,Regular
Black,m15BFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Regular Black,m15BFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039,Regular
Red,m15RFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Regular Red,m15RFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039,Regular
Green,m15GFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Regular Green,m15GFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039,Regular
Multicolored,m15MFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Regular Multicolored,m15MFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039,Regular
Artifact,m15AFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Regular Artifact,m15AFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039,Regular
Land,m15LFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Regular Land,m15LFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039,Regular
Vehicle,m15VFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Regular Vehicle,m15VFull.png,Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039,Regular
White PT,m15WPT.png,Full-567-921-140-81,Regular White PT,m15WPT.png,Full-567-921-140-81,Regular
Blue PT,m15UPT.png,Full-567-921-140-81,Regular Blue PT,m15UPT.png,Full-567-921-140-81,Regular
Black PT,m15BPT.png,Full-567-921-140-81,Regular Black PT,m15BPT.png,Full-567-921-140-81,Regular
@@ -16,14 +16,14 @@ Green PT,m15GPT.png,Full-567-921-140-81,Regular
Multicolored PT,m15MPT.png,Full-567-921-140-81,Regular Multicolored PT,m15MPT.png,Full-567-921-140-81,Regular
Artifact PT,m15APT.png,Full-567-921-140-81,Regular Artifact PT,m15APT.png,Full-567-921-140-81,Regular
Vehicle PT,m15VPT.png,Full-567-921-140-81,Regular Vehicle PT,m15VPT.png,Full-567-921-140-81,Regular
White Legendary,m15WLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177,Regular White Legendary,m15WLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177,Regular
Blue Legendary,m15ULegendary.png,Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177,Regular Blue Legendary,m15ULegendary.png,Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177,Regular
Black Legendary,m15BLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177,Regular Black Legendary,m15BLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177,Regular
Red Legendary,m15RLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177,Regular Red Legendary,m15RLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177,Regular
Green Legendary,m15GLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177,Regular Green Legendary,m15GLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177,Regular
Multicolored Legendary,m15MLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177,Regular Multicolored Legendary,m15MLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177,Regular
Artifact Legendary,m15ALegendary.png,Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177,Regular Artifact Legendary,m15ALegendary.png,Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177,Regular
Colorless Legendary,m15CLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177,Regular Colorless Legendary,m15CLegendary.png,Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177,Regular
White Rare Stamp,m15WRareStamp.png,Full-327-943-91-22,Regular White Rare Stamp,m15WRareStamp.png,Full-327-943-91-22,Regular
Blue Rare Stamp,m15URareStamp.png,Full-327-943-91-22,Regular Blue Rare Stamp,m15URareStamp.png,Full-327-943-91-22,Regular
Black Rare Stamp,m15BRareStamp.png,Full-327-943-91-22,Regular Black Rare Stamp,m15BRareStamp.png,Full-327-943-91-22,Regular
@@ -32,5 +32,5 @@ Green Rare Stamp,m15GRareStamp.png,Full-327-943-91-22,Regular
Multicolored Rare Stamp,m15MRareStamp.png,Full-327-943-91-22,Regular Multicolored Rare Stamp,m15MRareStamp.png,Full-327-943-91-22,Regular
Artifact Rare Stamp,m15ARareStamp.png,Full-327-943-91-22,Regular Artifact Rare Stamp,m15ARareStamp.png,Full-327-943-91-22,Regular
Colorless Rare Stamp,m15CRareStamp.png,Full-327-943-91-22,Regular Colorless Rare Stamp,m15CRareStamp.png,Full-327-943-91-22,Regular
Holo Stamp,stamp.png,Full-340-953-70-38,Regular Holo Stamp,stamp.png,Full-340-953-70-38,Regular;Eternal
Black Border,masks/Border.png,Full-0-0-744-1039;BoxTopper-0-0-744-1039,Regular Black Border,masks/Border.png,Full-0-0-744-1039;Box Topper-0-0-744-1039,Regular
1 displayName imagePath maskOptions framePickerOptions
2 White m15WFull.png Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039 Regular
3 Blue m15UFull.png Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039 Regular
4 Black m15BFull.png Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039 Regular
5 Red m15RFull.png Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039 Regular
6 Green m15GFull.png Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039 Regular
7 Multicolored m15MFull.png Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039 Regular
8 Artifact m15AFull.png Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039 Regular
9 Land m15LFull.png Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039 Regular
10 Vehicle m15VFull.png Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Full-0-0-744-1039;Title-0-0-744-1039;Type-0-0-744-1039;Rules Text-0-0-744-1039;Pinline-0-0-744-1039;Frame-0-0-744-1039;Box Topper-0-0-744-1039 Regular
11 White PT m15WPT.png Full-567-921-140-81 Regular
12 Blue PT m15UPT.png Full-567-921-140-81 Regular
13 Black PT m15BPT.png Full-567-921-140-81 Regular
16 Multicolored PT m15MPT.png Full-567-921-140-81 Regular
17 Artifact PT m15APT.png Full-567-921-140-81 Regular
18 Vehicle PT m15VPT.png Full-567-921-140-81 Regular
19 White Legendary m15WLegendary.png Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177 Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177 Regular
20 Blue Legendary m15ULegendary.png Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177 Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177 Regular
21 Black Legendary m15BLegendary.png Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177 Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177 Regular
22 Red Legendary m15RLegendary.png Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177 Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177 Regular
23 Green Legendary m15GLegendary.png Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177 Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177 Regular
24 Multicolored Legendary m15MLegendary.png Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177 Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177 Regular
25 Artifact Legendary m15ALegendary.png Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177 Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177 Regular
26 Colorless Legendary m15CLegendary.png Full-0-0-744-177;Legend-0-0-744-177;LegendWithBorder-0-0-744-177 Full-0-0-744-177;Legend-0-0-744-177;Legend With Border-0-0-744-177 Regular
27 White Rare Stamp m15WRareStamp.png Full-327-943-91-22 Regular
28 Blue Rare Stamp m15URareStamp.png Full-327-943-91-22 Regular
29 Black Rare Stamp m15BRareStamp.png Full-327-943-91-22 Regular
32 Multicolored Rare Stamp m15MRareStamp.png Full-327-943-91-22 Regular
33 Artifact Rare Stamp m15ARareStamp.png Full-327-943-91-22 Regular
34 Colorless Rare Stamp m15CRareStamp.png Full-327-943-91-22 Regular
35 Holo Stamp stamp.png Full-340-953-70-38 Regular Regular;Eternal
36 Black Border masks/Border.png Full-0-0-744-1039;BoxTopper-0-0-744-1039 Full-0-0-744-1039;Box Topper-0-0-744-1039 Regular

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

6
data/images/nyxCSV.csv Normal file
View File

@@ -0,0 +1,6 @@
displayName,imagePath,maskOptions,framePickerOptions
White Nyx,m15WNyx.png,Full-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Nyx
Blue Nyx,m15UNyx.png,Full-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Nyx
Black Nyx,m15BNyx.png,Full-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Nyx
Red Nyx,m15RNyx.png,Full-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Nyx
Green Nyx,m15GNyx.png,Full-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039,Nyx
1 displayName imagePath maskOptions framePickerOptions
2 White Nyx m15WNyx.png Full-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Nyx
3 Blue Nyx m15UNyx.png Full-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Nyx
4 Black Nyx m15BNyx.png Full-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Nyx
5 Red Nyx m15RNyx.png Full-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Nyx
6 Green Nyx m15GNyx.png Full-0-0-744-1039;Frame-0-0-744-1039;BoxTopper-0-0-744-1039 Nyx

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

View File

@@ -0,0 +1,9 @@
displayName,imagePath,maskOptions,framePickerOptions
White,planeswalker/m15WPlaneswalker.png,Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039,Planeswalker
Blue,planeswalker/m15UPlaneswalker.png,Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039,Planeswalker
Black,planeswalker/m15BPlaneswalker.png,Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039,Planeswalker
Red,planeswalker/m15RPlaneswalker.png,Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039,Planeswalker
Green,planeswalker/m15GPlaneswalker.png,Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039,Planeswalker
Multicolored,planeswalker/m15MPlaneswalker.png,Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039,Planeswalker
Artifact,planeswalker/m15APlaneswalker.png,Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039,Planeswalker
Colorless,planeswalker/m15CPlaneswalker.png,Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039,Planeswalker
1 displayName imagePath maskOptions framePickerOptions
2 White planeswalker/m15WPlaneswalker.png Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039 Planeswalker
3 Blue planeswalker/m15UPlaneswalker.png Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039 Planeswalker
4 Black planeswalker/m15BPlaneswalker.png Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039 Planeswalker
5 Red planeswalker/m15RPlaneswalker.png Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039 Planeswalker
6 Green planeswalker/m15GPlaneswalker.png Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039 Planeswalker
7 Multicolored planeswalker/m15MPlaneswalker.png Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039 Planeswalker
8 Artifact planeswalker/m15APlaneswalker.png Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039 Planeswalker
9 Colorless planeswalker/m15CPlaneswalker.png Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039;Pinline Planeswalker-0-0-744-1039;Frame Planeswalker-0-0-744-1039;Loyalty Planeswalker-0-0-744-1039 Planeswalker

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -17,25 +17,21 @@ function initiate() {
window.cardWidth = 744; window.cardWidth = 744;
window.cardHeight = 1039; window.cardHeight = 1039;
window.frameList = new Array(); window.frameList = new Array();
window.maskNameList = ["Right Half", "Corners", "Full", "Title", "Type", "Rules Text", "Pinline", "Frame", "Border", "Legend", "LegendWithBorder", "BoxTopper"]; window.maskNameList = [];
window.maskList = []; window.maskList = [];
window.selectedFrame = -1; window.selectedFrame = -1;
window.selectedMask = ""; window.selectedMask = "";
window.updateTextDelay = setTimeout(rewriteText, 500); window.updateTextDelay = setTimeout(rewriteText, 500);
for (var i = 0; i < maskNameList.length; i++) {
var imageSource = "data/images/masks/" + maskNameList[i].replace(" ", "") + ".png";
maskList[i] = new Image();
maskList[i].src = imageSource;
}
window.cardMaster = document.getElementById("cardMaster"); window.cardMaster = document.getElementById("cardMaster");
window.displayCanvas = document.getElementById("displayCanvas"); window.displayCanvas = document.getElementById("displayCanvas");
document.getElementById("displayCanvas").width = cardWidth; document.getElementById("displayCanvas").width = cardWidth;
document.getElementById("displayCanvas").height = cardHeight; document.getElementById("displayCanvas").height = cardHeight;
window.displayContext = displayCanvas.getContext("2d"); window.displayContext = displayCanvas.getContext("2d");
window.textCanvasesPadding = 100
newCanvas("frameMask"); newCanvas("frameMask");
newCanvas("frameFinal"); newCanvas("frameFinal");
newCanvas("text"); newCanvas("text");
newCanvas("line"); newCanvas("line", textCanvasesPadding);
newCanvas("paragraph"); newCanvas("paragraph");
newCanvas("bottomInfo"); newCanvas("bottomInfo");
newCanvas("setSymbol"); newCanvas("setSymbol");
@@ -86,7 +82,7 @@ function loadImageCSV(targetCSV) {
var xhttp = new XMLHttpRequest(); var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() { xhttp.onreadystatechange = function() {
if (this.readyState == 4) { if (this.readyState == 4) {
var splitImageCSV = xhttp.responseText.split("\n"); var splitImageCSV = (xhttp.responseText + " ").split("\n");
for (var i = 1; i < splitImageCSV.length; i++) { for (var i = 1; i < splitImageCSV.length; i++) {
var splitIndividualImageCSV = splitImageCSV[i].split(","); var splitIndividualImageCSV = splitImageCSV[i].split(",");
frameList[frameList.length] = new frameImage(splitIndividualImageCSV[0], "data/images/" + splitIndividualImageCSV[1], splitIndividualImageCSV[2], splitIndividualImageCSV[3].toString()); frameList[frameList.length] = new frameImage(splitIndividualImageCSV[0], "data/images/" + splitIndividualImageCSV[1], splitIndividualImageCSV[2], splitIndividualImageCSV[3].toString());
@@ -95,7 +91,7 @@ function loadImageCSV(targetCSV) {
} }
} }
for (var i = 0; i < frameList.length; i++) { for (var i = 0; i < frameList.length; i++) {
document.getElementById("framePicker").appendChild(frameList[i].framePickerElement()); frameList[i].framePickerElement();
} }
console.log("image csv loaded, happy card conjuring!"); console.log("image csv loaded, happy card conjuring!");
// setTimeout(testFunction, 0); //deleteme // setTimeout(testFunction, 0); //deleteme
@@ -127,10 +123,11 @@ class frameImage {
this.widthList[i] = scale(parseInt(splitIndividualMasks[3])); this.widthList[i] = scale(parseInt(splitIndividualMasks[3]));
this.heightList[i] = scale(parseInt(splitIndividualMasks[4])); this.heightList[i] = scale(parseInt(splitIndividualMasks[4]));
} }
this.framePickerClasses =["frameOption"] this.framePickerClasses = ["frameOption"]
if (classes[0] == "f") { if (classes.length > 0) {
this.framePickerClasses = ("frameOption;" + classes.slice(0,classes.length - 1)).replace(/;/g, ";frameClass").split(";"); this.framePickerClasses = ("frameOption;" + classes.slice(0,classes.length - 1)).replace(/;/g, ";frameClass").split(";");
} }
this.addedToFramePicker = false;
} }
cardMasterElement(targetMask) { cardMasterElement(targetMask) {
var tempElement = document.createElement("div"); var tempElement = document.createElement("div");
@@ -140,14 +137,21 @@ class frameImage {
return tempElement return tempElement
} }
framePickerElement(targetElement) { framePickerElement(targetElement) {
if (!this.addedToFramePicker) {
this.addedToFramePicker = true;
var tempElement = document.createElement("div"); var tempElement = document.createElement("div");
tempElement.id = "frameIndex" + frameList.indexOf(this); tempElement.id = "frameIndex" + frameList.indexOf(this);
for (var i = 0; i < this.framePickerClasses.length; i++) { for (var i = 0; i < this.framePickerClasses.length; i++) {
tempElement.classList.add(this.framePickerClasses[i]); tempElement.classList.add(this.framePickerClasses[i]);
// console.log(this.framePickerClasses)
} }
tempElement.onclick = frameOptionClicked; tempElement.onclick = frameOptionClicked;
tempElement.innerHTML = "<img src=" + this.image.src + ">" tempElement.innerHTML = "<img src=" + this.image.src + ">";
return tempElement; document.getElementById("framePicker").appendChild(tempElement);
// return tempElement;
} else {
return
}
} }
} }
@@ -204,17 +208,17 @@ function deleteCardMasterElement(event) {
cardMasterUpdated(); cardMasterUpdated();
} }
function addNewFrameOption(imageSource) { function addNewFrameOption(imageSource) {
frameList[frameList.length] = new frameImage("Custom", imageSource, "Full-0-0-" + cardWidth + "-" + cardHeight + ";Title-0-0-" + cardWidth + "-" + cardHeight + ";Type-0-0-" + cardWidth + "-" + cardHeight + ";Rules Text-0-0-" + cardWidth + "-" + cardHeight + ";Pinline-0-0-" + cardWidth + "-" + cardHeight + ";Frame-0-0-" + cardWidth + "-" + cardHeight + ";Border-0-0-" + cardWidth + "-" + cardHeight); frameList[frameList.length] = new frameImage("Custom", imageSource, "Full-0-0-" + cardWidth + "-" + cardHeight + ";Title-0-0-" + cardWidth + "-" + cardHeight + ";Type-0-0-" + cardWidth + "-" + cardHeight + ";Rules Text-0-0-" + cardWidth + "-" + cardHeight + ";Pinline-0-0-" + cardWidth + "-" + cardHeight + ";Frame-0-0-" + cardWidth + "-" + cardHeight + ";Border-0-0-" + cardWidth + "-" + cardHeight + ";Box Topper-0-0-" + cardWidth + "-" + cardHeight, "Eternal;Custom ");
frameList[frameList.length - 1].image.customVar = frameList.length - 1 frameList[frameList.length - 1].image.customVar = frameList.length - 1
frameList[frameList.length - 1].image.onload = function() { frameList[frameList.length - 1].image.onload = function() {
document.getElementById("framePicker").appendChild(frameList[this.customVar].framePickerElement()); frameList[this.customVar].framePickerElement();
} }
} }
/* Card Master Cool Stuff! */ /* Card Master Cool Stuff! */
function cardMasterUpdated() { function cardMasterUpdated() {
// console.log("The card master is updating!"); // console.log("The card master is updating!");
frameFinalContext.clearRect(0, 0, cardWidth, cardHeight); frameFinalContext.clearRect(0, 0, cardWidth, cardHeight);
for (var i = cardMaster.children.length - 1; i >= 0; i--) { for (var i = cardMaster.children.length - 1; i >= 0; i--) {
var targetChild = cardMaster.children[i]; var targetChild = cardMaster.children[i];
@@ -268,6 +272,9 @@ function cardImageUpdated() {
//Draw the art, frame, text, bottom info, mana cost, watermark, and set symbol //Draw the art, frame, text, bottom info, mana cost, watermark, and set symbol
// cardFinalContext.drawImage(cardArt, version.artX + getValue("inputCardArtX"), version.artY + getValue("inputCardArtY"), cardArt.width * getValue("inputCardArtZoom") / 100, cardArt.height * getValue("inputCardArtZoom") / 100) // cardFinalContext.drawImage(cardArt, version.artX + getValue("inputCardArtX"), version.artY + getValue("inputCardArtY"), cardArt.width * getValue("inputCardArtZoom") / 100, cardArt.height * getValue("inputCardArtZoom") / 100)
cardFinalContext.drawImage(frameFinalCanvas, 0, 0, cardWidth, cardHeight); cardFinalContext.drawImage(frameFinalCanvas, 0, 0, cardWidth, cardHeight);
if (version.currentVersion == "planeswalker") {
cardFinalContext.drawImage(planeswalkerCanvas, 0, 0, cardWidth, cardHeight);
}
cardFinalContext.drawImage(textCanvas, 0, 0, cardWidth, cardHeight); cardFinalContext.drawImage(textCanvas, 0, 0, cardWidth, cardHeight);
cardFinalContext.drawImage(bottomInfoCanvas, 0, 0, cardWidth, cardHeight); cardFinalContext.drawImage(bottomInfoCanvas, 0, 0, cardWidth, cardHeight);
cardFinalContext.drawManaCost(document.getElementById("inputManaCost").value, version.manaCostX, version.manaCostY, version.manaCostDiameter, version.manaCostDistance, version.manaCostDirection) cardFinalContext.drawManaCost(document.getElementById("inputManaCost").value, version.manaCostX, version.manaCostY, version.manaCostDiameter, version.manaCostDistance, version.manaCostDirection)
@@ -284,9 +291,17 @@ function cardImageUpdated() {
/* Loading/manipulating card versions */ /* Loading/manipulating card versions */
function changeVersionTo(versionToChangeTo) { function changeVersionTo(versionToChangeTo) {
loadScript("data/versions/" + versionToChangeTo + ".js") loadScript("data/versions/" + versionToChangeTo + ".js");
} }
function finishChangingVersion(targetCSV = false) { function finishChangingVersion(targetCSV = false) {
for (var i = 0; i < version.masksToAdd.length; i++) {
if (!maskNameList.includes(version.masksToAdd[i])) {
maskNameList[maskNameList.length] = version.masksToAdd[i];
maskList[maskList.length] = new Image();
maskList[maskList.length - 1].src = "data/images/masks/" + version.masksToAdd[i].replace(/ /g, "") + ".png";
}
}
document.getElementById("inputWhichTextTabs").innerHTML = ""
for (var i = 0; i < version.textList.length; i ++) { for (var i = 0; i < version.textList.length; i ++) {
document.getElementById("inputWhichTextTabs").innerHTML += "<div class='textTabButton' onclick='textTabFunction(event, `" + version.textList[i][0] + "`)'>" + version.textList[i][0] + "</div>" document.getElementById("inputWhichTextTabs").innerHTML += "<div class='textTabButton' onclick='textTabFunction(event, `" + version.textList[i][0] + "`)'>" + version.textList[i][0] + "</div>"
if (i == 0) { if (i == 0) {
@@ -333,7 +348,13 @@ function updateText() {
function rewriteText() { function rewriteText() {
textContext.clearRect(0, 0, cardWidth, cardHeight) textContext.clearRect(0, 0, cardWidth, cardHeight)
for (var i = 0; i < version.textList.length; i ++) { for (var i = 0; i < version.textList.length; i ++) {
textContext.writeText(version.textList[i][1], version.textList[i][2], version.textList[i][3], version.textList[i][4], version.textList[i][5], version.textList[i][6], version.textList[i][7], version.textList[i][8], version.textList[i][9]) if (version.textList[i][10]) {
if (version.textList[i][10] != "ignore") {
window[version.textList[i][10]]();
}
} else {
textContext.writeText(version.textList[i][1], version.textList[i][2], version.textList[i][3], version.textList[i][4], version.textList[i][5], version.textList[i][6], version.textList[i][7], version.textList[i][8], version.textList[i][9]);
}
} }
cardImageUpdated() cardImageUpdated()
} }
@@ -355,10 +376,10 @@ function getValue(elementId) {
/* Functions that make stuff */ /* Functions that make stuff */
function newCanvas(newCanvasName) { function newCanvas(newCanvasName, padding = 0) {
window[newCanvasName + "Canvas"] = document.createElement("canvas"); window[newCanvasName + "Canvas"] = document.createElement("canvas");
window[newCanvasName + "Canvas"].width = cardWidth; window[newCanvasName + "Canvas"].width = cardWidth + padding * 2;
window[newCanvasName + "Canvas"].height = cardHeight; window[newCanvasName + "Canvas"].height = cardHeight + padding * 2;
window[newCanvasName + "Context"] = window[newCanvasName + "Canvas"].getContext("2d"); window[newCanvasName + "Context"] = window[newCanvasName + "Canvas"].getContext("2d");
} }
@@ -459,7 +480,7 @@ function updateWatermark() {
} }
//Custom text function! This acts on any codes and makes things look nice :) //Custom text function! This acts on any codes and makes things look nice :)
CanvasRenderingContext2D.prototype.writeText = function(text = "", textX = 0, textY = 0, textWidth = cardWidth, textHeight = cardHeight, textFont = "belerenbsc", inputTextSize = 38, textColor="black", other="") { CanvasRenderingContext2D.prototype.writeText = function(text = "", textX = 0, textY = 0, textWidth = cardWidth, textHeight = cardHeight, textFont = "belerenbsc", inputTextSize = 38, textColor="black", other="", completionFunction) {
paragraphContext.clearRect(0, 0, cardWidth, cardHeight) paragraphContext.clearRect(0, 0, cardWidth, cardHeight)
var textSize = inputTextSize var textSize = inputTextSize
lineContext.font = textSize + "px " + textFont lineContext.font = textSize + "px " + textFont
@@ -471,8 +492,8 @@ CanvasRenderingContext2D.prototype.writeText = function(text = "", textX = 0, te
} }
lineContext.strokeStyle = outline lineContext.strokeStyle = outline
lineContext.lineWidth = outlineWidth lineContext.lineWidth = outlineWidth
var currentLineX = 0 var currentLineX = textCanvasesPadding
var currentLineY = textY + textSize * 0.45 var currentLineY = textY + (textSize * 0.45) //+ textCanvasesPadding
var uniqueSplitter = "9dn57gwbt4sh" var uniqueSplitter = "9dn57gwbt4sh"
var splitString = text.replace(/ /g, uniqueSplitter + " " + uniqueSplitter).replace(/{/g, uniqueSplitter + "{").replace(/}/g, "}" + uniqueSplitter).split(uniqueSplitter) var splitString = text.replace(/ /g, uniqueSplitter + " " + uniqueSplitter).replace(/{/g, uniqueSplitter + "{").replace(/}/g, "}" + uniqueSplitter).split(uniqueSplitter)
splitString[splitString.length] = " " splitString[splitString.length] = " "
@@ -494,7 +515,7 @@ CanvasRenderingContext2D.prototype.writeText = function(text = "", textX = 0, te
finishLine = true finishLine = true
var barWidth = manaSymbolImageList[63].width var barWidth = manaSymbolImageList[63].width
var barHeight = manaSymbolImageList[63].height var barHeight = manaSymbolImageList[63].height
paragraphContext.drawImage(manaSymbolImageList[63], textX + textWidth / 2 - barWidth / 2, currentLineY + textSize * 0.6, barWidth, barHeight) lineContext.drawImage(manaSymbolImageList[63], textX + textWidth / 2 - barWidth / 2, currentLineY + textSize * 0.6, barWidth, barHeight)
currentLineY += textSize * 0.8 currentLineY += textSize * 0.8
if (possibleCodeLower == "flavor") { if (possibleCodeLower == "flavor") {
lineContext.font = "italic " + (textSize - 3) + "px " + textFont lineContext.font = "italic " + (textSize - 3) + "px " + textFont
@@ -526,9 +547,13 @@ CanvasRenderingContext2D.prototype.writeText = function(text = "", textX = 0, te
currentLineX += artistBrushWidth * 1.1 currentLineX += artistBrushWidth * 1.1
} else if (possibleCodeLower.includes("fontcolor")) { } else if (possibleCodeLower.includes("fontcolor")) {
lineContext.fillStyle = possibleCodeLower.slice(9, possibleCodeLower.length) lineContext.fillStyle = possibleCodeLower.slice(9, possibleCodeLower.length)
}else if (possibleCodeLower.includes("font")) { } else if (possibleCodeLower.includes("font")) {
textFont = possibleCodeLower.slice(5, possibleCodeLower.length) textFont = possibleCodeLower.slice(5, possibleCodeLower.length)
lineContext.font = textSize + "px " + textFont lineContext.font = textSize + "px " + textFont
} else if (possibleCodeLower.includes("outline:")) {
outline = true;
lineContext.strokeStyle = possibleCodeLower.replace("outline:", "").split(",")[0];
lineContext.lineWidth = parseInt(possibleCodeLower.replace("outline:", "").split(",")[1]);
} else if (manaSymbolCodeList.includes(possibleCodeLower)) { } else if (manaSymbolCodeList.includes(possibleCodeLower)) {
//THIS HAS TO BE THE LAST ONE //THIS HAS TO BE THE LAST ONE
var manaSymbolDiameter = textSize * 0.77 var manaSymbolDiameter = textSize * 0.77
@@ -545,10 +570,10 @@ CanvasRenderingContext2D.prototype.writeText = function(text = "", textX = 0, te
//forces the last artificially added space to be too wide, making sure the last line is drawn in. //forces the last artificially added space to be too wide, making sure the last line is drawn in.
currentWordWidth = textWidth + 1 currentWordWidth = textWidth + 1
} }
if (currentLineX + currentWordWidth > textWidth || finishLine) { if (currentLineX - textCanvasesPadding + currentWordWidth > textWidth || finishLine) {
//Finish the line //Finish the line
if (oneLine && i != splitString.length - 1 && inputTextSize > 1) { if (oneLine && i != splitString.length - 1 && inputTextSize > 1) {
lineContext.clearRect(0, 0, cardWidth, cardHeight) lineContext.clearRect(0, 0, cardWidth + 2 * textCanvasesPadding, cardHeight + 2 * textCanvasesPadding)
this.writeText(text, textX, textY, textWidth, textHeight, textFont, inputTextSize - 1, textColor, other) this.writeText(text, textX, textY, textWidth, textHeight, textFont, inputTextSize - 1, textColor, other)
return return
} }
@@ -558,17 +583,17 @@ CanvasRenderingContext2D.prototype.writeText = function(text = "", textX = 0, te
currentLineX -= textContext.measureText(" ").width currentLineX -= textContext.measureText(" ").width
} }
if (textAlign == "center") { if (textAlign == "center") {
alignAdjust = textWidth / 2 - currentLineX / 2 + textX alignAdjust = textWidth / 2 - (currentLineX - textCanvasesPadding) / 2 + textX
} else if (textAlign == "right") { } else if (textAlign == "right") {
alignAdjust = textWidth + textX - currentLineX alignAdjust = textWidth + textX - currentLineX + textCanvasesPadding
} }
} else { } else {
alignAdjust += textX alignAdjust += textX
} }
paragraphContext.drawImage(lineCanvas, 0 + alignAdjust, 0, cardWidth, cardHeight) paragraphContext.drawImage(lineCanvas, 0 + alignAdjust - textCanvasesPadding, 0, cardWidth + 2 * textCanvasesPadding, cardHeight + 2 * textCanvasesPadding)
lineContext.clearRect(0, 0, cardWidth, cardHeight) lineContext.clearRect(0, 0, cardWidth + 2 * textCanvasesPadding, cardHeight + 2 * textCanvasesPadding)
currentLineY += textSize * lineSpace currentLineY += textSize * lineSpace
currentLineX = 0 currentLineX = textCanvasesPadding
if (wordToWrite == " ") { if (wordToWrite == " ") {
currentWordWidth = 0 currentWordWidth = 0
} }
@@ -591,6 +616,12 @@ CanvasRenderingContext2D.prototype.writeText = function(text = "", textX = 0, te
verticalAdjust = (textHeight + textY - currentLineY + textSize) / 2 verticalAdjust = (textHeight + textY - currentLineY + textSize) / 2
} }
this.drawImage(paragraphCanvas, 0, 0 + verticalAdjust, cardWidth, cardHeight) this.drawImage(paragraphCanvas, 0, 0 + verticalAdjust, cardWidth, cardHeight)
if (text != "") {
// console.log(text)
}
if (completionFunction) {
window[completionFunction]();
}
return "done" return "done"
} }
//Loads up all the mana symbol images //Loads up all the mana symbol images
@@ -602,7 +633,7 @@ function loadManaSymbolImages() {
} }
//Draws a mana cost //Draws a mana cost
CanvasRenderingContext2D.prototype.drawManaCost = function(text, symbolsX, symbolsY, diameter = 50, distance = -50, direction = "horizontal") { CanvasRenderingContext2D.prototype.drawManaCost = function(text, symbolsX, symbolsY, diameter = 50, distance = -50, direction = "horizontal") {
var splitManaCost = text.replace(/{/g, " ").replace(/}/g, " ").split(" ") var splitManaCost = text.toLowerCase().replace(/{/g, " ").replace(/}/g, " ").split(" ")
var currentSymbolIndex = 0 var currentSymbolIndex = 0
var currentX = symbolsX var currentX = symbolsX
var currentY = symbolsY var currentY = symbolsY
@@ -839,7 +870,8 @@ function textCodeTutorial() {
_down#-moves the following text # pixels down _down#-moves the following text # pixels down
_left#-moves the following text # pixels left _left#-moves the following text # pixels left
_right#-moves the following text # pixels right _right#-moves the following text # pixels right
_SYMBOL-creates a mana symbol, where SYMBOL can be: w, u, b, r, g, 1, 2, 3, etc...` _SYMBOL-creates a mana symbol, where SYMBOL can be: w, u, b, r, g, 1, 2, 3, etc...
_outline:*,#-outlines the following text with # thickness and * color`
var textCodeTutorialArray = textCodeTutorialString.split("_") var textCodeTutorialArray = textCodeTutorialString.split("_")
for (var i = 0; i < textCodeTutorialArray.length; i ++) { for (var i = 0; i < textCodeTutorialArray.length; i ++) {
document.getElementById("textCodeTutorial").innerHTML += "<div class='selectable'><b>{" + textCodeTutorialArray[i].split("-")[0] + "}</b></div><div>" + textCodeTutorialArray[i].split("-")[1] + "</div>" document.getElementById("textCodeTutorial").innerHTML += "<div class='selectable'><b>{" + textCodeTutorialArray[i].split("-")[0] + "}</b></div><div>" + textCodeTutorialArray[i].split("-")[1] + "</div>"
@@ -848,3 +880,20 @@ function textCodeTutorial() {
// //textCodeTutorial() // //textCodeTutorial()
textCodeTutorial() textCodeTutorial()
function loadPlaneswalkerFrames() {
changeVersionTo("planeswalker");
}
function filterFramePicker(classToShow) {
var framePickerList = document.getElementsByClassName("frameOption")
for (var i = 0; i < framePickerList.length; i++) {
if (!framePickerList[i].classList.contains("hidden") && !framePickerList[i].classList.contains(classToShow) && !framePickerList[i].classList.contains("frameClassEternal")) {
framePickerList[i].classList.add("hidden")
} else if (framePickerList[i].classList.contains(classToShow) && framePickerList[i].classList.contains("hidden")) {
framePickerList[i].classList.remove("hidden")
}
}
}

BIN
data/site/icons/discord.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
data/site/icons/reddit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -40,12 +40,14 @@
--shifting-color-1-light: #c8ff64; --shifting-color-1-light: #c8ff64;
--light-color: #eee; --light-color: #eee;
--dark-color: #333; --dark-color: #333;
--clear-light: #fff2; --clear-light: #fff3;
--clear-mid: #fff4; --clear-mid: #fff6;
--clear-dark: #fff6; --clear-dark: #fff9;
--clear-darker: #aaa3;
--clear-darkerer: #aaa6;
--background-gradient: linear-gradient(to bottom right, var(--shifting-color-1), var(--shifting-color-1-light));
} }
/*Background & Footer*/ /*Background & Footer*/
html { html {
background-image: linear-gradient(to bottom right, var(--shifting-color-1), var(--shifting-color-1-light)); background-image: linear-gradient(to bottom right, var(--shifting-color-1), var(--shifting-color-1-light));
@@ -58,8 +60,12 @@ html {
font-size: 8pt; font-size: 8pt;
} }
body { body {
margin: 0px; margin: 0;
border: 0;
padding: 0;
background-image: url(images/lowpoly.png); background-image: url(images/lowpoly.png);
background-position: left;
background-repeat: no-repeat;
background-attachment: fixed; background-attachment: fixed;
background-size: cover; background-size: cover;
} }
@@ -370,11 +376,10 @@ footer a:hover {
} }
/* Text code tutorial */
#textCodeTutorial { #textCodeTutorial {
display: grid; display: grid;
grid-template-columns: 6.5em auto; grid-template-columns: 6.5em auto;
/*padding: 0.5em;*/
} }
#textCodeTutorial > div { #textCodeTutorial > div {
padding: 0.25em 0; padding: 0.25em 0;
@@ -388,3 +393,43 @@ footer a:hover {
input[type="checkbox"], .frameOption, .maskOption, .button { input[type="checkbox"], .frameOption, .maskOption, .button {
cursor: pointer; cursor: pointer;
} }
/* image links */
.proxyFactoryLimitedGrid {
margin: 0 auto;
max-width: 32em;
}
.imageLinkGrid {
margin-top: 1em;
display: grid;
justify-items: center;
grid-template-columns: repeat(auto-fit, minmax(13em, 1fr));
}
.showBackgroundThrough {
display: inline-block;
background: url(images/lowpoly.png) left top no-repeat;
background-size: cover;
background-attachment: fixed;
}
.imageLink {
width: 12em;
padding: 0.5em;
border-radius: 1em;
display: grid;
grid-template-columns: 4em auto;
align-items: center;
justify-items: left;
border: 1px solid var(--dark-color);
}
.imageLink:hover {
background-color: var(--clear-darkerer);
}
.imageLink > img {
max-height: 3em;
max-width: 4em;
}
.imageLink > div {
font: 1.5em belerenbsc;
}

View File

@@ -21,6 +21,7 @@ version.manaCostDirection = "horizontal"
version.watermarkWidth = scale(520) version.watermarkWidth = scale(520)
version.watermarkHeight = scale(250) version.watermarkHeight = scale(250)
version.watermarkY = scale(800) version.watermarkY = scale(800)
version.masksToAdd = ["Right Half", "Corners", "Full", "Title", "Type", "Rules Text", "Pinline", "Frame", "Border", "Legend", "Legend With Border", "Box Topper"]
//Name, text, x, y, width, height, font, size, color, other //Name, text, x, y, width, height, font, size, color, other
version.textList = [ version.textList = [
["Title", "", scale(64), scale(83), scale(630), 0, "belerenb", 37, "black", "oneLine=true"], ["Title", "", scale(64), scale(83), scale(630), 0, "belerenb", 37, "black", "oneLine=true"],

View File

@@ -0,0 +1,164 @@
//============================================//
// Card Conjurer, by Kyle Burton //
//============================================//
version.currentVersion = "planeswalker"
version.artX = scale(58)
version.artY = scale(118)
version.setSymbolRight = scale(687)
version.setSymbolVertical = scale(612)
version.setSymbolWidth = scale(90)
version.setSymbolHeight = scale(42)
version.bottomInfoFunction = "m15PlaneswalkerBottomInfo"
version.manaCostX = scale(653)
version.manaCostY = scale(60)
version.manaCostDiameter = scale(34)
version.manaCostDistance = scale(-38)
version.manaCostDirection = "horizontal"
version.watermarkWidth = scale(520)
version.watermarkHeight = scale(250)
version.watermarkY = scale(800)
version.masksToAdd = ["Title Planeswalker", "Type Planeswalker", "Pinline Planeswalker", "Frame Planeswalker", "Border Planeswalker", "Loyalty Planeswalker", "Rules Text Planeswalker"]
filterFramePicker("frameClassPlaneswalker")
//Name, text, x, y, width, height, font, size, color, other, alternative-function
version.textList = [
["Title", "", scale(65), scale(65), scale(630), 0, "belerenb", scale(39), "black", "oneLine=true"],
["Type", "", scale(65), scale(615), scale(630), 0, "belerenb", scale(33), "black", "oneLine=true"],
["First Ability","",,,,,,,,,"planeswalkerAbilities"],
["Second Ability", "",,,,,,,,,"ignore"],
["Third Ability", "",,,,,,,,,"ignore"],
["Fourth Ability", "",,,,,,,,,"ignore"],
["Loyalty", "", scale(615), scale(958), scale(79), 0, "belerenb", scale(38), "white", "oneLine=true,textAlign='center'"]
]
function m15PlaneswalkerBottomInfo() { //remember to ctrl+f for 'artistBrushWidth' and adjust that when fixing these values!
bottomInfoContext.clearRect(0, 0, cardWidth, cardHeight)
bottomInfoContext.writeText(document.getElementById("inputInfoNumber").value + " " + document.getElementById("inputInfoRarity").value + " *Not For Sale*", scale(46), scale(982), scale(329), 0, "gothammedium", scale(17), "white", "oneLine=true")
bottomInfoContext.writeText(document.getElementById("inputInfoSet").value + " \u2022 " + document.getElementById("inputInfoLanguage").value + " {font:belerenbsc}{artistBrush}{fontsize1}" + document.getElementById("inputInfoArtist").value, scale(46), scale(1002), scale(375), 0, "gothammedium", 17, "white", "oneLine=true")
bottomInfoContext.writeText("\u2122 & \u00a9 " + date.getFullYear() + " Wizards of the Coast", cardWidth / 2, scale(1001), scale(322), 0, "mplantin", scale(17), "white", "oneLine=true,textAlign='right'")
cardImageUpdated()
}
if (!version.addedPlaneswalker) {
version.addedPlaneswalker = true
document.getElementById("mainTabMenu").innerHTML += "<div class='tabOption mainEditor' onclick='toggleTabs(event, `planeswalker`, `mainEditor`)'>Planeswalker</div>"
var planeswalkerTab = document.createElement("div")
planeswalkerTab.classList.add("tabContent")
planeswalkerTab.classList.add("mainEditor")
planeswalkerTab.id = "planeswalker"
planeswalkerTab.innerHTML = `
One: <input type="number" class="input number" id="inputPlaneswalker1" oninput="planeswalkerAbilities()" value="99" min="0" max="1039"><input type="text" class="input text" id="inputPlaneswalker1Icon" oninput="planeswalkerAbilities()" value="+1">
Two: <input type="number" class="input number" id="inputPlaneswalker2" oninput="planeswalkerAbilities()" value="100" min="0" max="1039"><input type="text" class="input text" id="inputPlaneswalker2Icon" oninput="planeswalkerAbilities()" value="0">
Three: <input type="number" class="input number" id="inputPlaneswalker3" oninput="planeswalkerAbilities()" value="101" min="0" max="1039"><input type="text" class="input text" id="inputPlaneswalker3Icon" oninput="planeswalkerAbilities()" value="-3">
Four: <input type="number" class="input number" id="inputPlaneswalker4" oninput="planeswalkerAbilities()" value="0" min="0" max="1039"><input type="text" class="input text" id="inputPlaneswalker4Icon" oninput="planeswalkerAbilities()" value="-9"><br>
For two-ability Planeswalkers only:<br>
<input type="checkbox" onchange="changePlaneswalkerAbilityLayout()" id="inputWARSpacing"> Use War of the Spark ability spacing<br>
<input type="checkbox" onchange="changePlaneswalkerAbilityLayout()" id="inputWARReverse"> Reverse War of the Spark ability spacing`
document.getElementById("cardMenu").appendChild(planeswalkerTab)
newCanvas("planeswalker");
var planeswalkerPlus = new Image()
planeswalkerPlus.src = "data/images/planeswalker/planeswalkerPlus.png"
var planeswalkerNeutral = new Image()
planeswalkerNeutral.src = "data/images/planeswalker/planeswalkerNeutral.png"
var planeswalkerMinus = new Image()
planeswalkerMinus.src = "data/images/planeswalker/planeswalkerMinus.png"
var lightToDarkPlaneswalker = new Image()
lightToDarkPlaneswalker.src = "data/images/planeswalker/abilityLineOdd.png"
var darkToLightPlaneswalker = new Image()
darkToLightPlaneswalker.onload = function() {planeswalkerAbilities()}
darkToLightPlaneswalker.src = "data/images/planeswalker/abilityLineEven.png"
}
m15PlaneswalkerBottomInfo()
finishChangingVersion("data/images/planeswalker/planeswalkerCSV.csv")
var planeswalkerAbilityLayout = [[0], [0, scale(784)], [0, scale(730), scale(863)], [0, scale(697), scale(784), scale(878)], [0, scale(100), scale(200), scale(300), scale(400)]]
var planeswalkerAbilityCount = 3;
var ability1Y = 0, ability2Y = 0, ability3Y = 0, ability4Y = 0, ability5Y = cardHeight;
//planeswalkerContext.writeText(version.textList[2][1], 64, ability1Y, 616, 0, "mplantin", 38, "black", "lineSpace=0.97");
function planeswalkerAbilities() {
planeswalkerContext.clearRect(0, 0, cardWidth, cardHeight)
planeswalkerAbilityCount = 0
for (var i = 1; i < 5; i++) {
if (getValue("inputPlaneswalker" + i) != 0) {
planeswalkerAbilityCount += 1;
} else {
break
}
}
if (planeswalkerAbilityCount > 0) {
ability1Y = scale(648)
if (planeswalkerAbilityCount > 1) {
window.ability2Y = getValue("inputPlaneswalker1") + ability1Y
if (planeswalkerAbilityCount > 2) {
ability3Y = getValue("inputPlaneswalker2") + ability2Y
if (planeswalkerAbilityCount > 3) {
ability4Y = getValue("inputPlaneswalker3") + ability3Y
planeswalkerContext.writeText(version.textList[5][1], scale(133), ability4Y + (scale(950) - ability4Y) / 2, scale(555), 0, "mplantin", scale(38), "black", "lineSpace=0.97");
}
planeswalkerContext.writeText(version.textList[4][1], scale(133), ability3Y + getValue("inputPlaneswalker3") / 2, scale(555), 0, "mplantin", scale(38), "black", "lineSpace=0.97");
}
planeswalkerContext.writeText(version.textList[3][1], scale(133), ability2Y + getValue("inputPlaneswalker2") / 2, scale(555), 0, "mplantin", scale(38), "black", "lineSpace=0.97");
}
planeswalkerContext.writeText(version.textList[2][1], scale(133), ability1Y + getValue("inputPlaneswalker1") / 2, scale(555), 0, "mplantin", scale(38), "black", "lineSpace=0.97", "planeswalkerTextFunction");
}
}
function planeswalkerTextFunction() {
planeswalkerContext.globalCompositeOperation = "destination-over"
var lastAdjust = 0
for (var i = 1; i < planeswalkerAbilityCount + 1; i++) {
if (i == planeswalkerAbilityCount) {
lastAdjust = 2 * cardHeight
}
if (i % 2 == 1) {
planeswalkerContext.fillStyle = "white"
planeswalkerContext.globalAlpha = 0.608
planeswalkerContext.fillRect(scale(91), window["ability" + i + "Y"] + scale(10), scale(599), window["ability" + (i + 1) + "Y"] - window["ability" + i + "Y"] - scale(20) + lastAdjust)
if (i == 1 && planeswalkerAbilityCount != 1) {
planeswalkerContext.fillRect(scale(91), window["ability" + i + "Y"], scale(599), scale(10))
}
planeswalkerContext.globalAlpha = 1
planeswalkerContext.drawImage(lightToDarkPlaneswalker, scale(91), window["ability" + (i + 1) + "Y"] - scale(10) + lastAdjust, scale(599), scale(20))
} else {
planeswalkerContext.fillStyle = "#a4a4a4"
planeswalkerContext.globalAlpha = 0.706
planeswalkerContext.fillRect(scale(91), window["ability" + i + "Y"] + scale(10), scale(599), window["ability" + (i + 1) + "Y"] - window["ability" + i + "Y"] - scale(20) + lastAdjust)
planeswalkerContext.globalAlpha = 1
planeswalkerContext.drawImage(darkToLightPlaneswalker, scale(91), window["ability" + (i + 1)+ "Y"] - scale(10) + lastAdjust, scale(599), scale(20))
}
}
planeswalkerContext.globalCompositeOperation = "destination-in"
planeswalkerContext.drawImage(maskList[maskNameList.indexOf("Rules Text Planeswalker")], 0, 0, cardWidth, cardHeight)
planeswalkerContext.globalCompositeOperation = "source-over"
planeswalkerContext.fillStyle = "white"
planeswalkerContext.font = "30px belerenbsc"
planeswalkerContext.textAlign = "center"
for (var i = 1; i < planeswalkerAbilityCount + 1; i++) {
var planeswalkerIconValue = document.getElementById("inputPlaneswalker" + i + "Icon").value
var planeswalkerMidpoint = getValue("inputPlaneswalker" + i + "") / 2 + window["ability" + i + "Y"]
if (planeswalkerIconValue.includes("+")) {
planeswalkerContext.drawImage(planeswalkerPlus, scale(22), planeswalkerAbilityLayout[planeswalkerAbilityCount][i] - scale(35), scale(105), scale(76))
planeswalkerContext.fillText(planeswalkerIconValue, scale(77), planeswalkerAbilityLayout[planeswalkerAbilityCount][i] + scale(10))
} else if (planeswalkerIconValue.includes("-")) {
planeswalkerContext.drawImage(planeswalkerMinus, scale(21), planeswalkerAbilityLayout[planeswalkerAbilityCount][i] - scale(24), scale(106), scale(74))
planeswalkerContext.fillText(planeswalkerIconValue, scale(77), planeswalkerAbilityLayout[planeswalkerAbilityCount][i] + scale(11))
} else if (planeswalkerIconValue != "") {
planeswalkerContext.drawImage(planeswalkerNeutral, scale(21), planeswalkerAbilityLayout[planeswalkerAbilityCount][i] - scale(24), scale(106), scale(64))
planeswalkerContext.fillText(planeswalkerIconValue, scale(77), planeswalkerAbilityLayout[planeswalkerAbilityCount][i] + scale(12))
}
}
cardImageUpdated()
}
function changePlaneswalkerAbilityLayout() {
if (document.getElementById("inputWARSpacing").checked) {
if (document.getElementById("inputWARReverse").checked) {
planeswalkerAbilityLayout[2] = [0, scale(784), scale(878)]
} else {
planeswalkerAbilityLayout[2] = [0, scale(697), scale(784)]
}
} else {
planeswalkerAbilityLayout[2] = [0, scale(730), scale(863)]
}
planeswalkerAbilities()
}

View File

@@ -16,7 +16,13 @@
</div> </div>
<div class="layer"> <div class="layer">
<div class="paragraph indent"> <div class="paragraph indent">
Card Conjurer is in no way affiliated with, sponsored by, or endorsed by Wizards of the Coast. Mana symbols and other related images are trademarks and copyrights of Wizards of the Coast, LLC, a subsidiary of Hasbro, Inc. Card Conjurer is in no way affiliated with, sponsored by, or endorsed by Wizards of the Coast. Fonts, Mana symbols, and other related images are trademarks and copyrights of Wizards of the Coast, LLC, a subsidiary of Hasbro, Inc.
</div>
</div>
<div class="layer">
<div class="paragraph">
Most of the card frames were created by the following:<br>
Kentu, Narb777, CXA26843, FPM, Xander, Chrome Kaldra, CBG, Trancebam, Larme, RoblinTheGoblin, and White Dragon.
</div> </div>
</div> </div>
<div class="layer"> <div class="layer">

View File

@@ -17,14 +17,16 @@
<canvas id="displayCanvas"></canvas> <canvas id="displayCanvas"></canvas>
</div> </div>
<div class="cardMenu"> <div class="cardMenu">
<div id="cardMenu">
<!-- Card editor tabs begin here! --> <!-- Card editor tabs begin here! -->
<div class="tabMenu"> <div class="tabMenu" id="mainTabMenu">
<div class="tabOption mainEditor tabOptionSelected" onclick="toggleTabs(event, 'frame', 'mainEditor')">Frame</div> <div class="tabOption mainEditor tabOptionSelected" onclick="toggleTabs(event, 'frame', 'mainEditor')">Frame</div>
<div class="tabOption mainEditor" onclick="toggleTabs(event, 'text', 'mainEditor')">Text</div> <div class="tabOption mainEditor" onclick="toggleTabs(event, 'text', 'mainEditor')">Text</div>
<div class="tabOption mainEditor" onclick="toggleTabs(event, 'art', 'mainEditor')">Art</div> <div class="tabOption mainEditor" onclick="toggleTabs(event, 'art', 'mainEditor')">Art</div>
<div class="tabOption mainEditor" onclick="toggleTabs(event, 'collector', 'mainEditor')">Collector</div> <div class="tabOption mainEditor" onclick="toggleTabs(event, 'collector', 'mainEditor')">Collector</div>
<div class="tabOption mainEditor" onclick="toggleTabs(event, 'set', 'mainEditor')">Set Symbol</div> <div class="tabOption mainEditor" onclick="toggleTabs(event, 'set', 'mainEditor')">Set Symbol</div>
<div class="tabOption mainEditor" onclick="toggleTabs(event, 'watermark', 'mainEditor')">Watermark</div> <div class="tabOption mainEditor" onclick="toggleTabs(event, 'watermark', 'mainEditor')">Watermark</div>
<div class="tabOption mainEditor" onclick="toggleTabs(event, 'advanced', 'mainEditor')">Advanced</div>
</div> </div>
<div class="tabContent mainEditor tabVisible" id="frame"> <div class="tabContent mainEditor tabVisible" id="frame">
<div class="splitGrid"> <div class="splitGrid">
@@ -120,6 +122,13 @@
</select> </select>
</div> </div>
</div> </div>
<div class="tabContent mainEditor" id="advanced">
<div class="paragraph indent">
Click on one of the following buttons to load the described image frame set:
</div>
<button onclick="loadPlaneswalkerFrames()" class="button">Planeswalker</button>
</div>
</div>
<!-- Card editor tabs end here! --> <!-- Card editor tabs end here! -->
<div class="bar"></div> <div class="bar"></div>
<div> <div>
@@ -141,12 +150,19 @@
</div> </div>
</div> </div>
<div class="layer"> <div class="layer">
<div class="title">Want More Customization?</div> <div class="title">Looking for the Original?</div>
<!-- <div class="paragraph indent">
If you'd like to try out some more frames, scroll to the bottom of this page and check the box next to "Advanced Borders" - CardConjurer.com will remember this setting, so you only need to do this once per device.
</div> -->
<div class="paragraph indent"> <div class="paragraph indent">
This version of the website is currently a work in progress, so it doesn't have all the features the original Card Conjurer had. If you'd like to go back to the old version, <a href="old/index.html">click here</a>. This version of the website is currently a work in progress, so it doesn't have the same features that the original Card Conjurer had. If you want to go back to the old version, <a href="old/index.html">click here</a>.
</div>
</div>
<div class="layer">
<div class="title">The Proxy Factory</div>
<div class="paragraph indent">If you'd like to delve deeper into making custom Magic: The Gathering cards, check out The Proxy Factory! They're a community full of individuals interested in creating custom cards, and are very welcoming to new members.</div>
<div class="proxyFactoryLimitedGrid">
<div class="imageLinkGrid">
<a class="imageLink showBackgroundThrough" style="color: #ff4500;" href="https://www.reddit.com/r/TheProxyFactory/"><img src="data/site/icons/reddit.png"><div>Reddit</div></a>
<a class="imageLink showBackgroundThrough" style="color: #738adb;" href="https://discordapp.com/invite/xBCQprM"><img src="data/site/icons/discord.png"><div>Discord</div></a>
</div>
</div> </div>
</div> </div>
<div class="layer"> <div class="layer">