diff --git a/OLDdata/fonts/beleren-b.ttf b/OLDdata/fonts/beleren-b.ttf deleted file mode 100644 index 979b66c6..00000000 Binary files a/OLDdata/fonts/beleren-b.ttf and /dev/null differ diff --git a/OLDdata/fonts/beleren-bsc.ttf b/OLDdata/fonts/beleren-bsc.ttf deleted file mode 100644 index 53695db9..00000000 Binary files a/OLDdata/fonts/beleren-bsc.ttf and /dev/null differ diff --git a/OLDdata/fonts/extras/goudy-medieval/Goudy Mediaeval DemiBold.ttf b/OLDdata/fonts/extras/goudy-medieval/Goudy Mediaeval DemiBold.ttf deleted file mode 100644 index 67667056..00000000 Binary files a/OLDdata/fonts/extras/goudy-medieval/Goudy Mediaeval DemiBold.ttf and /dev/null differ diff --git a/OLDdata/fonts/extras/goudy-medieval/Goudy Mediaeval Regular.ttf b/OLDdata/fonts/extras/goudy-medieval/Goudy Mediaeval Regular.ttf deleted file mode 100644 index 3f0c59e3..00000000 Binary files a/OLDdata/fonts/extras/goudy-medieval/Goudy Mediaeval Regular.ttf and /dev/null differ diff --git a/OLDdata/fonts/extras/goudy-medieval/Goudy Medieval Alternate.ttf b/OLDdata/fonts/extras/goudy-medieval/Goudy Medieval Alternate.ttf deleted file mode 100644 index 58813bff..00000000 Binary files a/OLDdata/fonts/extras/goudy-medieval/Goudy Medieval Alternate.ttf and /dev/null differ diff --git a/OLDdata/fonts/extras/relay-medium.ttf b/OLDdata/fonts/extras/relay-medium.ttf deleted file mode 100644 index a0f595b3..00000000 Binary files a/OLDdata/fonts/extras/relay-medium.ttf and /dev/null differ diff --git a/OLDdata/fonts/gotham-medium.ttf b/OLDdata/fonts/gotham-medium.ttf deleted file mode 100644 index fd822114..00000000 Binary files a/OLDdata/fonts/gotham-medium.ttf and /dev/null differ diff --git a/OLDdata/fonts/goudy-medieval.ttf b/OLDdata/fonts/goudy-medieval.ttf deleted file mode 100644 index 3f0c59e3..00000000 Binary files a/OLDdata/fonts/goudy-medieval.ttf and /dev/null differ diff --git a/OLDdata/fonts/matrix-b.ttf b/OLDdata/fonts/matrix-b.ttf deleted file mode 100644 index 855e51f9..00000000 Binary files a/OLDdata/fonts/matrix-b.ttf and /dev/null differ diff --git a/OLDdata/fonts/matrix-bsc.ttf b/OLDdata/fonts/matrix-bsc.ttf deleted file mode 100644 index 326e007b..00000000 Binary files a/OLDdata/fonts/matrix-bsc.ttf and /dev/null differ diff --git a/OLDdata/fonts/matrix.ttf b/OLDdata/fonts/matrix.ttf deleted file mode 100644 index c9b5e105..00000000 Binary files a/OLDdata/fonts/matrix.ttf and /dev/null differ diff --git a/OLDdata/fonts/mplantin-i.ttf b/OLDdata/fonts/mplantin-i.ttf deleted file mode 100644 index 5755831c..00000000 Binary files a/OLDdata/fonts/mplantin-i.ttf and /dev/null differ diff --git a/OLDdata/fonts/mplantin.ttf b/OLDdata/fonts/mplantin.ttf deleted file mode 100644 index 116529ef..00000000 Binary files a/OLDdata/fonts/mplantin.ttf and /dev/null differ diff --git a/OLDdata/images/expedition/expeditionAFull.png b/OLDdata/images/expedition/expeditionAFull.png deleted file mode 100644 index 9274b36a..00000000 Binary files a/OLDdata/images/expedition/expeditionAFull.png and /dev/null differ diff --git a/OLDdata/images/expedition/expeditionBFull.png b/OLDdata/images/expedition/expeditionBFull.png deleted file mode 100644 index 39fa92ac..00000000 Binary files a/OLDdata/images/expedition/expeditionBFull.png and /dev/null differ diff --git a/OLDdata/images/expedition/expeditionCFull.png b/OLDdata/images/expedition/expeditionCFull.png deleted file mode 100644 index 9da9424e..00000000 Binary files a/OLDdata/images/expedition/expeditionCFull.png and /dev/null differ diff --git a/OLDdata/images/expedition/expeditionCSV.csv b/OLDdata/images/expedition/expeditionCSV.csv deleted file mode 100644 index c41195b2..00000000 --- a/OLDdata/images/expedition/expeditionCSV.csv +++ /dev/null @@ -1,16 +0,0 @@ -displayName,imagePath,maskOptions,framePickerOptions -White,expedition/expeditionWFull.png,Full-0-0-744-1039;Title Expedition-0-0-744-1039;Type Expedition-0-0-744-1039;Pinline Expedition-0-0-744-1039;Rules Text Expedition-0-0-744-1039,Expedition -Blue,expedition/expeditionUFull.png,Full-0-0-744-1039;Title Expedition-0-0-744-1039;Type Expedition-0-0-744-1039;Pinline Expedition-0-0-744-1039;Rules Text Expedition-0-0-744-1039,Expedition -Black,expedition/expeditionBFull.png,Full-0-0-744-1039;Title Expedition-0-0-744-1039;Type Expedition-0-0-744-1039;Pinline Expedition-0-0-744-1039;Rules Text Expedition-0-0-744-1039,Expedition -Red,expedition/expeditionRFull.png,Full-0-0-744-1039;Title Expedition-0-0-744-1039;Type Expedition-0-0-744-1039;Pinline Expedition-0-0-744-1039;Rules Text Expedition-0-0-744-1039,Expedition -Green,expedition/expeditionGFull.png,Full-0-0-744-1039;Title Expedition-0-0-744-1039;Type Expedition-0-0-744-1039;Pinline Expedition-0-0-744-1039;Rules Text Expedition-0-0-744-1039,Expedition -Multicolored,expedition/expeditionMFull.png,Full-0-0-744-1039;Title Expedition-0-0-744-1039;Type Expedition-0-0-744-1039;Pinline Expedition-0-0-744-1039;Rules Text Expedition-0-0-744-1039,Expedition -Artifact,expedition/expeditionAFull.png,Full-0-0-744-1039;Title Expedition-0-0-744-1039;Type Expedition-0-0-744-1039;Pinline Expedition-0-0-744-1039;Rules Text Expedition-0-0-744-1039,Expedition -Colorless,expedition/expeditionCFull.png,Full-0-0-744-1039;Title Expedition-0-0-744-1039;Type Expedition-0-0-744-1039;Pinline Expedition-0-0-744-1039;Rules Text Expedition-0-0-744-1039,Expedition -White PT,m15WPT.png,Full-567-921-140-81,Expedition -Blue PT,m15UPT.png,Full-567-921-140-81,Expedition -Black PT,m15BPT.png,Full-567-921-140-81,Expedition -Red PT,m15RPT.png,Full-567-921-140-81,Expedition -Green PT,m15GPT.png,Full-567-921-140-81,Expedition -Multicolored PT,m15MPT.png,Full-567-921-140-81,Expedition -Artifact PT,m15APT.png,Full-567-921-140-81,Expedition \ No newline at end of file diff --git a/OLDdata/images/expedition/expeditionGFull.png b/OLDdata/images/expedition/expeditionGFull.png deleted file mode 100644 index 68ef7de3..00000000 Binary files a/OLDdata/images/expedition/expeditionGFull.png and /dev/null differ diff --git a/OLDdata/images/expedition/expeditionMFull.png b/OLDdata/images/expedition/expeditionMFull.png deleted file mode 100644 index 182d12c8..00000000 Binary files a/OLDdata/images/expedition/expeditionMFull.png and /dev/null differ diff --git a/OLDdata/images/expedition/expeditionRFull.png b/OLDdata/images/expedition/expeditionRFull.png deleted file mode 100644 index 841297bc..00000000 Binary files a/OLDdata/images/expedition/expeditionRFull.png and /dev/null differ diff --git a/OLDdata/images/expedition/expeditionUFull.png b/OLDdata/images/expedition/expeditionUFull.png deleted file mode 100644 index 1e8b4c64..00000000 Binary files a/OLDdata/images/expedition/expeditionUFull.png and /dev/null differ diff --git a/OLDdata/images/expedition/expeditionWFull.png b/OLDdata/images/expedition/expeditionWFull.png deleted file mode 100644 index cbc8671a..00000000 Binary files a/OLDdata/images/expedition/expeditionWFull.png and /dev/null differ diff --git a/OLDdata/images/foil.png b/OLDdata/images/foil.png deleted file mode 100644 index 4c1d7624..00000000 Binary files a/OLDdata/images/foil.png and /dev/null differ diff --git a/OLDdata/images/future/futureAFull.png b/OLDdata/images/future/futureAFull.png deleted file mode 100644 index 7fc59f5b..00000000 Binary files a/OLDdata/images/future/futureAFull.png and /dev/null differ diff --git a/OLDdata/images/future/futureAPT.png b/OLDdata/images/future/futureAPT.png deleted file mode 100644 index 81107e90..00000000 Binary files a/OLDdata/images/future/futureAPT.png and /dev/null differ diff --git a/OLDdata/images/future/futureBFull.png b/OLDdata/images/future/futureBFull.png deleted file mode 100644 index 7fb788e3..00000000 Binary files a/OLDdata/images/future/futureBFull.png and /dev/null differ diff --git a/OLDdata/images/future/futureBPT.png b/OLDdata/images/future/futureBPT.png deleted file mode 100644 index d5c238f9..00000000 Binary files a/OLDdata/images/future/futureBPT.png and /dev/null differ diff --git a/OLDdata/images/future/futureCFull.png b/OLDdata/images/future/futureCFull.png deleted file mode 100644 index ae8546ec..00000000 Binary files a/OLDdata/images/future/futureCFull.png and /dev/null differ diff --git a/OLDdata/images/future/futureCPT.png b/OLDdata/images/future/futureCPT.png deleted file mode 100644 index 1ef49481..00000000 Binary files a/OLDdata/images/future/futureCPT.png and /dev/null differ diff --git a/OLDdata/images/future/futureCSV.csv b/OLDdata/images/future/futureCSV.csv deleted file mode 100644 index 5adac186..00000000 --- a/OLDdata/images/future/futureCSV.csv +++ /dev/null @@ -1,22 +0,0 @@ -displayName,imagePath,maskOptions,framePickerOptions -White,future/futureWFull.png,Full-0-0-744-1039,Future -Blue,future/futureUFull.png,Full-0-0-744-1039,Future -Black,future/futureBFull.png,Full-0-0-744-1039,Future -Red,future/futureRFull.png,Full-0-0-744-1039,Future -Green,future/futureGFull.png,Full-0-0-744-1039,Future -Multicolored,future/futureMFull.png,Full-0-0-744-1039,Future -Artifact,future/futureAFull.png,Full-0-0-744-1039,Future -Land,future/futureLFull.png,Full-0-0-744-1039,Future -Colorless,future/futureCFull.png,Full-0-0-744-1039,Future -White Icon,future/futureWhite.png,Icon Future Creature-49-49-32-32;Icon Future Instant-49-49-32-32;Icon Future Sorcery-49-49-32-32;Icon Future Enchantment-49-49-32-32;Icon Future Artifact-49-49-32-32;Icon Future Land-49-49-32-32;Icon Future Multi-49-49-32-32,Future -Gray Icon,future/futureGray.png,Icon Future Creature-49-49-32-32;Icon Future Instant-49-49-32-32;Icon Future Sorcery-49-49-32-32;Icon Future Enchantment-49-49-32-32;Icon Future Artifact-49-49-32-32;Icon Future Land-49-49-32-32;Icon Future Multi-49-49-32-32,Future -White PT,future/futureWPT.png,Full-567-918-129-81,Future -Blue PT,future/futureUPT.png,Full-567-918-129-81,Future -Black PT,future/futureBPT.png,Full-567-918-129-81,Future -Red PT,future/futureRPT.png,Full-567-918-129-81,Future -Green PT,future/futureGPT.png,Full-567-918-129-81,Future -Multicolored PT,future/futureMPT.png,Full-567-918-129-81,Future -Artifact PT,future/futureAPT.png,Full-567-918-129-81,Future -Land PT,future/futureLPT.png,Full-567-918-129-81,Future -Colorless PT,future/futureCPT.png,Full-567-918-129-81,Future -Black Border,masks/BorderFuture.png,Full-0-0-744-1039;Border Future-0-0-744-1039,Future \ No newline at end of file diff --git a/OLDdata/images/future/futureGFull.png b/OLDdata/images/future/futureGFull.png deleted file mode 100644 index cf268921..00000000 Binary files a/OLDdata/images/future/futureGFull.png and /dev/null differ diff --git a/OLDdata/images/future/futureGPT.png b/OLDdata/images/future/futureGPT.png deleted file mode 100644 index 2132e56f..00000000 Binary files a/OLDdata/images/future/futureGPT.png and /dev/null differ diff --git a/OLDdata/images/future/futureGray.png b/OLDdata/images/future/futureGray.png deleted file mode 100644 index bee4c167..00000000 Binary files a/OLDdata/images/future/futureGray.png and /dev/null differ diff --git a/OLDdata/images/future/futureLFull.png b/OLDdata/images/future/futureLFull.png deleted file mode 100644 index eb228a6c..00000000 Binary files a/OLDdata/images/future/futureLFull.png and /dev/null differ diff --git a/OLDdata/images/future/futureLPT.png b/OLDdata/images/future/futureLPT.png deleted file mode 100644 index ec1ea6d5..00000000 Binary files a/OLDdata/images/future/futureLPT.png and /dev/null differ diff --git a/OLDdata/images/future/futureMFull.png b/OLDdata/images/future/futureMFull.png deleted file mode 100644 index b5b5a833..00000000 Binary files a/OLDdata/images/future/futureMFull.png and /dev/null differ diff --git a/OLDdata/images/future/futureMPT.png b/OLDdata/images/future/futureMPT.png deleted file mode 100644 index 99d09868..00000000 Binary files a/OLDdata/images/future/futureMPT.png and /dev/null differ diff --git a/OLDdata/images/future/futureRFull.png b/OLDdata/images/future/futureRFull.png deleted file mode 100644 index f59b31a4..00000000 Binary files a/OLDdata/images/future/futureRFull.png and /dev/null differ diff --git a/OLDdata/images/future/futureRPT.png b/OLDdata/images/future/futureRPT.png deleted file mode 100644 index 14c35771..00000000 Binary files a/OLDdata/images/future/futureRPT.png and /dev/null differ diff --git a/OLDdata/images/future/futureUFull.png b/OLDdata/images/future/futureUFull.png deleted file mode 100644 index 0a04067c..00000000 Binary files a/OLDdata/images/future/futureUFull.png and /dev/null differ diff --git a/OLDdata/images/future/futureUPT.png b/OLDdata/images/future/futureUPT.png deleted file mode 100644 index 0b834229..00000000 Binary files a/OLDdata/images/future/futureUPT.png and /dev/null differ diff --git a/OLDdata/images/future/futureWFull.png b/OLDdata/images/future/futureWFull.png deleted file mode 100644 index afe9b2fc..00000000 Binary files a/OLDdata/images/future/futureWFull.png and /dev/null differ diff --git a/OLDdata/images/future/futureWPT.png b/OLDdata/images/future/futureWPT.png deleted file mode 100644 index 97b817b0..00000000 Binary files a/OLDdata/images/future/futureWPT.png and /dev/null differ diff --git a/OLDdata/images/future/futureWhite.png b/OLDdata/images/future/futureWhite.png deleted file mode 100644 index 8ffc20f1..00000000 Binary files a/OLDdata/images/future/futureWhite.png and /dev/null differ diff --git a/OLDdata/images/imageCSV.csv b/OLDdata/images/imageCSV.csv deleted file mode 100644 index 5c54e73a..00000000 --- a/OLDdata/images/imageCSV.csv +++ /dev/null @@ -1,36 +0,0 @@ -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;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;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;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;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;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;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;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;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;Box Topper-0-0-744-1039,Regular -White PT,m15WPT.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 -Red PT,m15RPT.png,Full-567-921-140-81,Regular -Green PT,m15GPT.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 -Vehicle PT,m15VPT.png,Full-567-921-140-81,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;Legend With Border-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;Legend With Border-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;Legend With Border-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;Legend With Border-0-0-744-177,Regular -White Rare Stamp,m15WRareStamp.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 -Red Rare Stamp,m15RRareStamp.png,Full-327-943-91-22,Regular -Green Rare Stamp,m15GRareStamp.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 -Colorless Rare Stamp,m15CRareStamp.png,Full-327-943-91-22,Regular -Holo Stamp,stamp.png,Full-340-953-70-38,Regular;Eternal -Black Border,masks/Border.png,Full-0-0-744-1039;Box Topper-0-0-744-1039,Regular \ No newline at end of file diff --git a/OLDdata/images/invention/inventionAFull.png b/OLDdata/images/invention/inventionAFull.png deleted file mode 100644 index 29419436..00000000 Binary files a/OLDdata/images/invention/inventionAFull.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionAPT.png b/OLDdata/images/invention/inventionAPT.png deleted file mode 100644 index bf6f7b80..00000000 Binary files a/OLDdata/images/invention/inventionAPT.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionBFull.png b/OLDdata/images/invention/inventionBFull.png deleted file mode 100644 index dd47fe38..00000000 Binary files a/OLDdata/images/invention/inventionBFull.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionBPT.png b/OLDdata/images/invention/inventionBPT.png deleted file mode 100644 index c13b69eb..00000000 Binary files a/OLDdata/images/invention/inventionBPT.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionCSV.csv b/OLDdata/images/invention/inventionCSV.csv deleted file mode 100644 index 28b10932..00000000 --- a/OLDdata/images/invention/inventionCSV.csv +++ /dev/null @@ -1,14 +0,0 @@ -displayName,imagePath,maskOptions,framePickerOptions -Artifact,invention/inventionAFull.png,Full-0-0-744-1039;Title Invention-0-0-744-1039;Type Invention-0-0-744-1039;Rules Text Invention-0-0-744-1039;Frame Invention-0-0-744-1039;Pinline Invention-0-0-744-1039,Invention -Artifact PT,invention/inventionAPT.png,Full-575-924-129-71,Invention -Border,masks/BorderInvention.png,Full-0-0-744-1039;Border Invention-0-0-744-1039,Invention -White,invention/inventionWFull.png,Full-0-0-744-1039;Title Invention-0-0-744-1039;Type Invention-0-0-744-1039;Rules Text Invention-0-0-744-1039;Frame Invention-0-0-744-1039;Pinline Invention-0-0-744-1039,Invention -Blue,invention/inventionUFull.png,Full-0-0-744-1039;Title Invention-0-0-744-1039;Type Invention-0-0-744-1039;Rules Text Invention-0-0-744-1039;Frame Invention-0-0-744-1039;Pinline Invention-0-0-744-1039,Invention -Black,invention/inventionBFull.png,Full-0-0-744-1039;Title Invention-0-0-744-1039;Type Invention-0-0-744-1039;Rules Text Invention-0-0-744-1039;Frame Invention-0-0-744-1039;Pinline Invention-0-0-744-1039,Invention -Red,invention/inventionRFull.png,Full-0-0-744-1039;Title Invention-0-0-744-1039;Type Invention-0-0-744-1039;Rules Text Invention-0-0-744-1039;Frame Invention-0-0-744-1039;Pinline Invention-0-0-744-1039,Invention -Green,invention/inventionGFull.png,Full-0-0-744-1039;Title Invention-0-0-744-1039;Type Invention-0-0-744-1039;Rules Text Invention-0-0-744-1039;Frame Invention-0-0-744-1039;Pinline Invention-0-0-744-1039,Invention -White PT,invention/inventionWPT.png,Full-575-924-129-71,Invention -Blue PT,invention/inventionUPT.png,Full-575-924-129-71,Invention -Black PT,invention/inventionBPT.png,Full-575-924-129-71,Invention -Red PT,invention/inventionRPT.png,Full-575-924-129-71,Invention -Green PT,invention/inventionGPT.png,Full-575-924-129-71,Invention \ No newline at end of file diff --git a/OLDdata/images/invention/inventionGFull.png b/OLDdata/images/invention/inventionGFull.png deleted file mode 100644 index 0aba98ad..00000000 Binary files a/OLDdata/images/invention/inventionGFull.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionGPT.png b/OLDdata/images/invention/inventionGPT.png deleted file mode 100644 index 0fda131c..00000000 Binary files a/OLDdata/images/invention/inventionGPT.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionRFull.png b/OLDdata/images/invention/inventionRFull.png deleted file mode 100644 index 7cac2c90..00000000 Binary files a/OLDdata/images/invention/inventionRFull.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionRPT.png b/OLDdata/images/invention/inventionRPT.png deleted file mode 100644 index 7b4beb73..00000000 Binary files a/OLDdata/images/invention/inventionRPT.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionTextlessAFull.png b/OLDdata/images/invention/inventionTextlessAFull.png deleted file mode 100644 index 67169943..00000000 Binary files a/OLDdata/images/invention/inventionTextlessAFull.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionTextlessBlackBackground.png b/OLDdata/images/invention/inventionTextlessBlackBackground.png deleted file mode 100644 index f96a4d48..00000000 Binary files a/OLDdata/images/invention/inventionTextlessBlackBackground.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionTextlessCSV.csv b/OLDdata/images/invention/inventionTextlessCSV.csv deleted file mode 100644 index e7129dba..00000000 --- a/OLDdata/images/invention/inventionTextlessCSV.csv +++ /dev/null @@ -1,6 +0,0 @@ -displayName,imagePath,maskOptions,framePickerOptions -Artifact,invention/inventionTextlessAFull.png,Full-0-0-744-1039,Invention -Artifact PT,invention/inventionAPT.png,Full-575-924-129-71,Invention -Border,masks/BorderInvention.png,Full-0-0-744-1039;Border Invention-0-0-744-1039,Invention -White Rules Text Box,invention/inventionTextlessWhiteBackground.png,Full-0-0-744-1039,Invention -Black Rules Text Box,invention/inventionTextlessBlackBackground.png,Full-0-0-744-1039,Invention \ No newline at end of file diff --git a/OLDdata/images/invention/inventionTextlessWhiteBackground.png b/OLDdata/images/invention/inventionTextlessWhiteBackground.png deleted file mode 100644 index c9489b51..00000000 Binary files a/OLDdata/images/invention/inventionTextlessWhiteBackground.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionUFull.png b/OLDdata/images/invention/inventionUFull.png deleted file mode 100644 index 633032ad..00000000 Binary files a/OLDdata/images/invention/inventionUFull.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionUPT.png b/OLDdata/images/invention/inventionUPT.png deleted file mode 100644 index bdcda0e8..00000000 Binary files a/OLDdata/images/invention/inventionUPT.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionWFull.png b/OLDdata/images/invention/inventionWFull.png deleted file mode 100644 index eacb48ed..00000000 Binary files a/OLDdata/images/invention/inventionWFull.png and /dev/null differ diff --git a/OLDdata/images/invention/inventionWPT.png b/OLDdata/images/invention/inventionWPT.png deleted file mode 100644 index c70d2f55..00000000 Binary files a/OLDdata/images/invention/inventionWPT.png and /dev/null differ diff --git a/OLDdata/images/m15AFull.png b/OLDdata/images/m15AFull.png deleted file mode 100644 index 016509d5..00000000 Binary files a/OLDdata/images/m15AFull.png and /dev/null differ diff --git a/OLDdata/images/m15ALegendary.png b/OLDdata/images/m15ALegendary.png deleted file mode 100644 index 9370d188..00000000 Binary files a/OLDdata/images/m15ALegendary.png and /dev/null differ diff --git a/OLDdata/images/m15APT.png b/OLDdata/images/m15APT.png deleted file mode 100644 index e3c25084..00000000 Binary files a/OLDdata/images/m15APT.png and /dev/null differ diff --git a/OLDdata/images/m15ARareStamp.png b/OLDdata/images/m15ARareStamp.png deleted file mode 100644 index 1c15b4ff..00000000 Binary files a/OLDdata/images/m15ARareStamp.png and /dev/null differ diff --git a/OLDdata/images/m15BFull.png b/OLDdata/images/m15BFull.png deleted file mode 100644 index c884eb5a..00000000 Binary files a/OLDdata/images/m15BFull.png and /dev/null differ diff --git a/OLDdata/images/m15BLegendary.png b/OLDdata/images/m15BLegendary.png deleted file mode 100644 index 74d1c9c8..00000000 Binary files a/OLDdata/images/m15BLegendary.png and /dev/null differ diff --git a/OLDdata/images/m15BPT.png b/OLDdata/images/m15BPT.png deleted file mode 100644 index 7142ee39..00000000 Binary files a/OLDdata/images/m15BPT.png and /dev/null differ diff --git a/OLDdata/images/m15BRareStamp.png b/OLDdata/images/m15BRareStamp.png deleted file mode 100644 index ff1241f6..00000000 Binary files a/OLDdata/images/m15BRareStamp.png and /dev/null differ diff --git a/OLDdata/images/m15CLegendary.png b/OLDdata/images/m15CLegendary.png deleted file mode 100644 index f629d012..00000000 Binary files a/OLDdata/images/m15CLegendary.png and /dev/null differ diff --git a/OLDdata/images/m15CRareStamp.png b/OLDdata/images/m15CRareStamp.png deleted file mode 100644 index d9a9c042..00000000 Binary files a/OLDdata/images/m15CRareStamp.png and /dev/null differ diff --git a/OLDdata/images/m15Extras/clearArtPinline.png b/OLDdata/images/m15Extras/clearArtPinline.png deleted file mode 100644 index 0672a9b5..00000000 Binary files a/OLDdata/images/m15Extras/clearArtPinline.png and /dev/null differ diff --git a/OLDdata/images/m15Extras/darkGrayFull.png b/OLDdata/images/m15Extras/darkGrayFull.png deleted file mode 100644 index 4bb6d7c0..00000000 Binary files a/OLDdata/images/m15Extras/darkGrayFull.png and /dev/null differ diff --git a/OLDdata/images/m15Extras/m15ExtrasCSV.csv b/OLDdata/images/m15Extras/m15ExtrasCSV.csv deleted file mode 100644 index 71346331..00000000 --- a/OLDdata/images/m15Extras/m15ExtrasCSV.csv +++ /dev/null @@ -1,4 +0,0 @@ -displayName,imagePath,maskOptions,framePickerOptions -Midnight,m15Extras/midnightFull.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 -Dark Gray,m15Extras/darkGrayFull.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 -Clear Art Pinline,m15Extras/clearArtPinline.png,Full-0-0-744-1039;Pinline-0-0-744-1039,Regular \ No newline at end of file diff --git a/OLDdata/images/m15Extras/midnightFull.png b/OLDdata/images/m15Extras/midnightFull.png deleted file mode 100644 index 9f74a32b..00000000 Binary files a/OLDdata/images/m15Extras/midnightFull.png and /dev/null differ diff --git a/OLDdata/images/m15GFull.png b/OLDdata/images/m15GFull.png deleted file mode 100644 index e2c06c48..00000000 Binary files a/OLDdata/images/m15GFull.png and /dev/null differ diff --git a/OLDdata/images/m15GLegendary.png b/OLDdata/images/m15GLegendary.png deleted file mode 100644 index 6ae64eef..00000000 Binary files a/OLDdata/images/m15GLegendary.png and /dev/null differ diff --git a/OLDdata/images/m15GPT.png b/OLDdata/images/m15GPT.png deleted file mode 100644 index 00bb0518..00000000 Binary files a/OLDdata/images/m15GPT.png and /dev/null differ diff --git a/OLDdata/images/m15GRareStamp.png b/OLDdata/images/m15GRareStamp.png deleted file mode 100644 index 4971d96e..00000000 Binary files a/OLDdata/images/m15GRareStamp.png and /dev/null differ diff --git a/OLDdata/images/m15LFull.png b/OLDdata/images/m15LFull.png deleted file mode 100644 index 35f260e8..00000000 Binary files a/OLDdata/images/m15LFull.png and /dev/null differ diff --git a/OLDdata/images/m15MFull.png b/OLDdata/images/m15MFull.png deleted file mode 100644 index bd459de2..00000000 Binary files a/OLDdata/images/m15MFull.png and /dev/null differ diff --git a/OLDdata/images/m15MLegendary.png b/OLDdata/images/m15MLegendary.png deleted file mode 100644 index 73a4df07..00000000 Binary files a/OLDdata/images/m15MLegendary.png and /dev/null differ diff --git a/OLDdata/images/m15MPT.png b/OLDdata/images/m15MPT.png deleted file mode 100644 index cd6c2e51..00000000 Binary files a/OLDdata/images/m15MPT.png and /dev/null differ diff --git a/OLDdata/images/m15MRareStamp.png b/OLDdata/images/m15MRareStamp.png deleted file mode 100644 index 77cc3cdc..00000000 Binary files a/OLDdata/images/m15MRareStamp.png and /dev/null differ diff --git a/OLDdata/images/m15RFull.png b/OLDdata/images/m15RFull.png deleted file mode 100644 index 1d3350bc..00000000 Binary files a/OLDdata/images/m15RFull.png and /dev/null differ diff --git a/OLDdata/images/m15RLegendary.png b/OLDdata/images/m15RLegendary.png deleted file mode 100644 index d8b3808b..00000000 Binary files a/OLDdata/images/m15RLegendary.png and /dev/null differ diff --git a/OLDdata/images/m15RPT.png b/OLDdata/images/m15RPT.png deleted file mode 100644 index 6c5577cb..00000000 Binary files a/OLDdata/images/m15RPT.png and /dev/null differ diff --git a/OLDdata/images/m15RRareStamp.png b/OLDdata/images/m15RRareStamp.png deleted file mode 100644 index 5c088f72..00000000 Binary files a/OLDdata/images/m15RRareStamp.png and /dev/null differ diff --git a/OLDdata/images/m15UFull.png b/OLDdata/images/m15UFull.png deleted file mode 100644 index 97ad5bf5..00000000 Binary files a/OLDdata/images/m15UFull.png and /dev/null differ diff --git a/OLDdata/images/m15ULegendary.png b/OLDdata/images/m15ULegendary.png deleted file mode 100644 index 1af0d087..00000000 Binary files a/OLDdata/images/m15ULegendary.png and /dev/null differ diff --git a/OLDdata/images/m15UPT.png b/OLDdata/images/m15UPT.png deleted file mode 100644 index 6d637d1e..00000000 Binary files a/OLDdata/images/m15UPT.png and /dev/null differ diff --git a/OLDdata/images/m15URareStamp.png b/OLDdata/images/m15URareStamp.png deleted file mode 100644 index c20a5b17..00000000 Binary files a/OLDdata/images/m15URareStamp.png and /dev/null differ diff --git a/OLDdata/images/m15VFull.png b/OLDdata/images/m15VFull.png deleted file mode 100644 index 0b40a984..00000000 Binary files a/OLDdata/images/m15VFull.png and /dev/null differ diff --git a/OLDdata/images/m15VPT.png b/OLDdata/images/m15VPT.png deleted file mode 100644 index 5b0a9442..00000000 Binary files a/OLDdata/images/m15VPT.png and /dev/null differ diff --git a/OLDdata/images/m15WFull.png b/OLDdata/images/m15WFull.png deleted file mode 100644 index 1fe36da3..00000000 Binary files a/OLDdata/images/m15WFull.png and /dev/null differ diff --git a/OLDdata/images/m15WLegendary.png b/OLDdata/images/m15WLegendary.png deleted file mode 100644 index 53da420e..00000000 Binary files a/OLDdata/images/m15WLegendary.png and /dev/null differ diff --git a/OLDdata/images/m15WPT.png b/OLDdata/images/m15WPT.png deleted file mode 100644 index 6822122d..00000000 Binary files a/OLDdata/images/m15WPT.png and /dev/null differ diff --git a/OLDdata/images/m15WRareStamp.png b/OLDdata/images/m15WRareStamp.png deleted file mode 100644 index eb43014e..00000000 Binary files a/OLDdata/images/m15WRareStamp.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/0.png b/OLDdata/images/manaSymbols/0.png deleted file mode 100644 index af88e794..00000000 Binary files a/OLDdata/images/manaSymbols/0.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/1.png b/OLDdata/images/manaSymbols/1.png deleted file mode 100644 index 82e78834..00000000 Binary files a/OLDdata/images/manaSymbols/1.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/10.png b/OLDdata/images/manaSymbols/10.png deleted file mode 100644 index 3e690aa2..00000000 Binary files a/OLDdata/images/manaSymbols/10.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/11.png b/OLDdata/images/manaSymbols/11.png deleted file mode 100644 index 8783c2bb..00000000 Binary files a/OLDdata/images/manaSymbols/11.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/12.png b/OLDdata/images/manaSymbols/12.png deleted file mode 100644 index 74fc1965..00000000 Binary files a/OLDdata/images/manaSymbols/12.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/13.png b/OLDdata/images/manaSymbols/13.png deleted file mode 100644 index 6af5e76c..00000000 Binary files a/OLDdata/images/manaSymbols/13.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/14.png b/OLDdata/images/manaSymbols/14.png deleted file mode 100644 index 778e71c6..00000000 Binary files a/OLDdata/images/manaSymbols/14.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/15.png b/OLDdata/images/manaSymbols/15.png deleted file mode 100644 index 0e2c368c..00000000 Binary files a/OLDdata/images/manaSymbols/15.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/16.png b/OLDdata/images/manaSymbols/16.png deleted file mode 100644 index fe808e5e..00000000 Binary files a/OLDdata/images/manaSymbols/16.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/17.png b/OLDdata/images/manaSymbols/17.png deleted file mode 100644 index f91a58f9..00000000 Binary files a/OLDdata/images/manaSymbols/17.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/18.png b/OLDdata/images/manaSymbols/18.png deleted file mode 100644 index 723eb4cf..00000000 Binary files a/OLDdata/images/manaSymbols/18.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/19.png b/OLDdata/images/manaSymbols/19.png deleted file mode 100644 index dae11a22..00000000 Binary files a/OLDdata/images/manaSymbols/19.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/2.png b/OLDdata/images/manaSymbols/2.png deleted file mode 100644 index b3d82fcb..00000000 Binary files a/OLDdata/images/manaSymbols/2.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/20.png b/OLDdata/images/manaSymbols/20.png deleted file mode 100644 index 526ca221..00000000 Binary files a/OLDdata/images/manaSymbols/20.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/21.png b/OLDdata/images/manaSymbols/21.png deleted file mode 100644 index a1d9c533..00000000 Binary files a/OLDdata/images/manaSymbols/21.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/22.png b/OLDdata/images/manaSymbols/22.png deleted file mode 100644 index 857e726e..00000000 Binary files a/OLDdata/images/manaSymbols/22.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/23.png b/OLDdata/images/manaSymbols/23.png deleted file mode 100644 index 80ae2b7a..00000000 Binary files a/OLDdata/images/manaSymbols/23.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/24.png b/OLDdata/images/manaSymbols/24.png deleted file mode 100644 index dd85d92a..00000000 Binary files a/OLDdata/images/manaSymbols/24.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/25.png b/OLDdata/images/manaSymbols/25.png deleted file mode 100644 index 2a268369..00000000 Binary files a/OLDdata/images/manaSymbols/25.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/26.png b/OLDdata/images/manaSymbols/26.png deleted file mode 100644 index 6b6e6a0e..00000000 Binary files a/OLDdata/images/manaSymbols/26.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/27.png b/OLDdata/images/manaSymbols/27.png deleted file mode 100644 index 0531ac2d..00000000 Binary files a/OLDdata/images/manaSymbols/27.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/28.png b/OLDdata/images/manaSymbols/28.png deleted file mode 100644 index 3a0dbe05..00000000 Binary files a/OLDdata/images/manaSymbols/28.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/29.png b/OLDdata/images/manaSymbols/29.png deleted file mode 100644 index 4e393bec..00000000 Binary files a/OLDdata/images/manaSymbols/29.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/3.png b/OLDdata/images/manaSymbols/3.png deleted file mode 100644 index a4aaedc6..00000000 Binary files a/OLDdata/images/manaSymbols/3.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/30.png b/OLDdata/images/manaSymbols/30.png deleted file mode 100644 index 58101dea..00000000 Binary files a/OLDdata/images/manaSymbols/30.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/31.png b/OLDdata/images/manaSymbols/31.png deleted file mode 100644 index 373d75d9..00000000 Binary files a/OLDdata/images/manaSymbols/31.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/32.png b/OLDdata/images/manaSymbols/32.png deleted file mode 100644 index 68a07790..00000000 Binary files a/OLDdata/images/manaSymbols/32.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/33.png b/OLDdata/images/manaSymbols/33.png deleted file mode 100644 index 913b43fe..00000000 Binary files a/OLDdata/images/manaSymbols/33.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/34.png b/OLDdata/images/manaSymbols/34.png deleted file mode 100644 index c9b83bcb..00000000 Binary files a/OLDdata/images/manaSymbols/34.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/35.png b/OLDdata/images/manaSymbols/35.png deleted file mode 100644 index 98c7fbf5..00000000 Binary files a/OLDdata/images/manaSymbols/35.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/36.png b/OLDdata/images/manaSymbols/36.png deleted file mode 100644 index fcdd4393..00000000 Binary files a/OLDdata/images/manaSymbols/36.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/37.png b/OLDdata/images/manaSymbols/37.png deleted file mode 100644 index 0c1d2da5..00000000 Binary files a/OLDdata/images/manaSymbols/37.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/38.png b/OLDdata/images/manaSymbols/38.png deleted file mode 100644 index 216251fa..00000000 Binary files a/OLDdata/images/manaSymbols/38.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/39.png b/OLDdata/images/manaSymbols/39.png deleted file mode 100644 index dc47735a..00000000 Binary files a/OLDdata/images/manaSymbols/39.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/4.png b/OLDdata/images/manaSymbols/4.png deleted file mode 100644 index 08d75a97..00000000 Binary files a/OLDdata/images/manaSymbols/4.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/40.png b/OLDdata/images/manaSymbols/40.png deleted file mode 100644 index 8574ed78..00000000 Binary files a/OLDdata/images/manaSymbols/40.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/41.png b/OLDdata/images/manaSymbols/41.png deleted file mode 100644 index 821e894a..00000000 Binary files a/OLDdata/images/manaSymbols/41.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/42.png b/OLDdata/images/manaSymbols/42.png deleted file mode 100644 index 9c8aab59..00000000 Binary files a/OLDdata/images/manaSymbols/42.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/43.png b/OLDdata/images/manaSymbols/43.png deleted file mode 100644 index 471b974c..00000000 Binary files a/OLDdata/images/manaSymbols/43.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/44.png b/OLDdata/images/manaSymbols/44.png deleted file mode 100644 index 68ccd442..00000000 Binary files a/OLDdata/images/manaSymbols/44.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/45.png b/OLDdata/images/manaSymbols/45.png deleted file mode 100644 index c8526e5c..00000000 Binary files a/OLDdata/images/manaSymbols/45.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/46.png b/OLDdata/images/manaSymbols/46.png deleted file mode 100644 index 776fa89d..00000000 Binary files a/OLDdata/images/manaSymbols/46.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/47.png b/OLDdata/images/manaSymbols/47.png deleted file mode 100644 index 235144f0..00000000 Binary files a/OLDdata/images/manaSymbols/47.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/48.png b/OLDdata/images/manaSymbols/48.png deleted file mode 100644 index 357dce5d..00000000 Binary files a/OLDdata/images/manaSymbols/48.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/49.png b/OLDdata/images/manaSymbols/49.png deleted file mode 100644 index fa50da49..00000000 Binary files a/OLDdata/images/manaSymbols/49.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/5.png b/OLDdata/images/manaSymbols/5.png deleted file mode 100644 index f6930ee8..00000000 Binary files a/OLDdata/images/manaSymbols/5.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/50.png b/OLDdata/images/manaSymbols/50.png deleted file mode 100644 index 56392649..00000000 Binary files a/OLDdata/images/manaSymbols/50.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/51.png b/OLDdata/images/manaSymbols/51.png deleted file mode 100644 index 3b098dcc..00000000 Binary files a/OLDdata/images/manaSymbols/51.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/52.png b/OLDdata/images/manaSymbols/52.png deleted file mode 100644 index fba0f73e..00000000 Binary files a/OLDdata/images/manaSymbols/52.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/53.png b/OLDdata/images/manaSymbols/53.png deleted file mode 100644 index 5ce5d5ab..00000000 Binary files a/OLDdata/images/manaSymbols/53.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/54.png b/OLDdata/images/manaSymbols/54.png deleted file mode 100644 index 9dbedb27..00000000 Binary files a/OLDdata/images/manaSymbols/54.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/55.png b/OLDdata/images/manaSymbols/55.png deleted file mode 100644 index a199cc76..00000000 Binary files a/OLDdata/images/manaSymbols/55.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/56.png b/OLDdata/images/manaSymbols/56.png deleted file mode 100644 index 4b6c92cd..00000000 Binary files a/OLDdata/images/manaSymbols/56.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/57.png b/OLDdata/images/manaSymbols/57.png deleted file mode 100644 index d03c020b..00000000 Binary files a/OLDdata/images/manaSymbols/57.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/58.png b/OLDdata/images/manaSymbols/58.png deleted file mode 100644 index aef16f82..00000000 Binary files a/OLDdata/images/manaSymbols/58.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/59.png b/OLDdata/images/manaSymbols/59.png deleted file mode 100644 index a051fa3e..00000000 Binary files a/OLDdata/images/manaSymbols/59.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/6.png b/OLDdata/images/manaSymbols/6.png deleted file mode 100644 index 09f74d0d..00000000 Binary files a/OLDdata/images/manaSymbols/6.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/60.png b/OLDdata/images/manaSymbols/60.png deleted file mode 100644 index 3f8e6565..00000000 Binary files a/OLDdata/images/manaSymbols/60.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/61.png b/OLDdata/images/manaSymbols/61.png deleted file mode 100644 index 975af655..00000000 Binary files a/OLDdata/images/manaSymbols/61.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/62.png b/OLDdata/images/manaSymbols/62.png deleted file mode 100644 index e9583ee8..00000000 Binary files a/OLDdata/images/manaSymbols/62.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/63.png b/OLDdata/images/manaSymbols/63.png deleted file mode 100644 index f3b4c60c..00000000 Binary files a/OLDdata/images/manaSymbols/63.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/64.png b/OLDdata/images/manaSymbols/64.png deleted file mode 100644 index d409ee8d..00000000 Binary files a/OLDdata/images/manaSymbols/64.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/65.png b/OLDdata/images/manaSymbols/65.png deleted file mode 100644 index f3a332c3..00000000 Binary files a/OLDdata/images/manaSymbols/65.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/7.png b/OLDdata/images/manaSymbols/7.png deleted file mode 100644 index 51e4783c..00000000 Binary files a/OLDdata/images/manaSymbols/7.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/8.png b/OLDdata/images/manaSymbols/8.png deleted file mode 100644 index 3aefd2b9..00000000 Binary files a/OLDdata/images/manaSymbols/8.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/9.png b/OLDdata/images/manaSymbols/9.png deleted file mode 100644 index e4ad3213..00000000 Binary files a/OLDdata/images/manaSymbols/9.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/0.png b/OLDdata/images/manaSymbols/future/0.png deleted file mode 100644 index a44c45f5..00000000 Binary files a/OLDdata/images/manaSymbols/future/0.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/1.png b/OLDdata/images/manaSymbols/future/1.png deleted file mode 100644 index 46ba6bf0..00000000 Binary files a/OLDdata/images/manaSymbols/future/1.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/10.png b/OLDdata/images/manaSymbols/future/10.png deleted file mode 100644 index 7669e8ba..00000000 Binary files a/OLDdata/images/manaSymbols/future/10.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/11.png b/OLDdata/images/manaSymbols/future/11.png deleted file mode 100644 index 1038bb40..00000000 Binary files a/OLDdata/images/manaSymbols/future/11.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/12.png b/OLDdata/images/manaSymbols/future/12.png deleted file mode 100644 index 7bb86aec..00000000 Binary files a/OLDdata/images/manaSymbols/future/12.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/13.png b/OLDdata/images/manaSymbols/future/13.png deleted file mode 100644 index b7ef99b8..00000000 Binary files a/OLDdata/images/manaSymbols/future/13.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/14.png b/OLDdata/images/manaSymbols/future/14.png deleted file mode 100644 index 7a58b2aa..00000000 Binary files a/OLDdata/images/manaSymbols/future/14.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/15.png b/OLDdata/images/manaSymbols/future/15.png deleted file mode 100644 index d14ad331..00000000 Binary files a/OLDdata/images/manaSymbols/future/15.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/16.png b/OLDdata/images/manaSymbols/future/16.png deleted file mode 100644 index 9e86e139..00000000 Binary files a/OLDdata/images/manaSymbols/future/16.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/17.png b/OLDdata/images/manaSymbols/future/17.png deleted file mode 100644 index 535ceecb..00000000 Binary files a/OLDdata/images/manaSymbols/future/17.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/18.png b/OLDdata/images/manaSymbols/future/18.png deleted file mode 100644 index b4f7a4d9..00000000 Binary files a/OLDdata/images/manaSymbols/future/18.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/19.png b/OLDdata/images/manaSymbols/future/19.png deleted file mode 100644 index 0f6c1738..00000000 Binary files a/OLDdata/images/manaSymbols/future/19.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/2.png b/OLDdata/images/manaSymbols/future/2.png deleted file mode 100644 index e5d63c41..00000000 Binary files a/OLDdata/images/manaSymbols/future/2.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/20.png b/OLDdata/images/manaSymbols/future/20.png deleted file mode 100644 index c88b5bb8..00000000 Binary files a/OLDdata/images/manaSymbols/future/20.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/21.png b/OLDdata/images/manaSymbols/future/21.png deleted file mode 100644 index 75a65b1d..00000000 Binary files a/OLDdata/images/manaSymbols/future/21.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/22.png b/OLDdata/images/manaSymbols/future/22.png deleted file mode 100644 index 02cb67db..00000000 Binary files a/OLDdata/images/manaSymbols/future/22.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/23.png b/OLDdata/images/manaSymbols/future/23.png deleted file mode 100644 index 26011509..00000000 Binary files a/OLDdata/images/manaSymbols/future/23.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/24.png b/OLDdata/images/manaSymbols/future/24.png deleted file mode 100644 index 5d58f73a..00000000 Binary files a/OLDdata/images/manaSymbols/future/24.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/25.png b/OLDdata/images/manaSymbols/future/25.png deleted file mode 100644 index 7fbbd5fc..00000000 Binary files a/OLDdata/images/manaSymbols/future/25.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/26.png b/OLDdata/images/manaSymbols/future/26.png deleted file mode 100644 index 52de3d29..00000000 Binary files a/OLDdata/images/manaSymbols/future/26.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/27.png b/OLDdata/images/manaSymbols/future/27.png deleted file mode 100644 index 704d8919..00000000 Binary files a/OLDdata/images/manaSymbols/future/27.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/28.png b/OLDdata/images/manaSymbols/future/28.png deleted file mode 100644 index ddaf8da5..00000000 Binary files a/OLDdata/images/manaSymbols/future/28.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/29.png b/OLDdata/images/manaSymbols/future/29.png deleted file mode 100644 index 8798d076..00000000 Binary files a/OLDdata/images/manaSymbols/future/29.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/3.png b/OLDdata/images/manaSymbols/future/3.png deleted file mode 100644 index fca19572..00000000 Binary files a/OLDdata/images/manaSymbols/future/3.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/30.png b/OLDdata/images/manaSymbols/future/30.png deleted file mode 100644 index c04ddda5..00000000 Binary files a/OLDdata/images/manaSymbols/future/30.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/31.png b/OLDdata/images/manaSymbols/future/31.png deleted file mode 100644 index 414d4bcc..00000000 Binary files a/OLDdata/images/manaSymbols/future/31.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/32.png b/OLDdata/images/manaSymbols/future/32.png deleted file mode 100644 index c30195dd..00000000 Binary files a/OLDdata/images/manaSymbols/future/32.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/33.png b/OLDdata/images/manaSymbols/future/33.png deleted file mode 100644 index 02459a93..00000000 Binary files a/OLDdata/images/manaSymbols/future/33.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/34.png b/OLDdata/images/manaSymbols/future/34.png deleted file mode 100644 index 3b3d7c19..00000000 Binary files a/OLDdata/images/manaSymbols/future/34.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/35.png b/OLDdata/images/manaSymbols/future/35.png deleted file mode 100644 index 4d8da46d..00000000 Binary files a/OLDdata/images/manaSymbols/future/35.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/36.png b/OLDdata/images/manaSymbols/future/36.png deleted file mode 100644 index 3e4cdfb3..00000000 Binary files a/OLDdata/images/manaSymbols/future/36.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/4.png b/OLDdata/images/manaSymbols/future/4.png deleted file mode 100644 index 2f347bdf..00000000 Binary files a/OLDdata/images/manaSymbols/future/4.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/5.png b/OLDdata/images/manaSymbols/future/5.png deleted file mode 100644 index 0880896c..00000000 Binary files a/OLDdata/images/manaSymbols/future/5.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/6.png b/OLDdata/images/manaSymbols/future/6.png deleted file mode 100644 index 4c6dced5..00000000 Binary files a/OLDdata/images/manaSymbols/future/6.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/7.png b/OLDdata/images/manaSymbols/future/7.png deleted file mode 100644 index cf2af3b0..00000000 Binary files a/OLDdata/images/manaSymbols/future/7.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/8.png b/OLDdata/images/manaSymbols/future/8.png deleted file mode 100644 index f5f77069..00000000 Binary files a/OLDdata/images/manaSymbols/future/8.png and /dev/null differ diff --git a/OLDdata/images/manaSymbols/future/9.png b/OLDdata/images/manaSymbols/future/9.png deleted file mode 100644 index 7a008e49..00000000 Binary files a/OLDdata/images/manaSymbols/future/9.png and /dev/null differ diff --git a/OLDdata/images/masks/Border.png b/OLDdata/images/masks/Border.png deleted file mode 100644 index 56b737c4..00000000 Binary files a/OLDdata/images/masks/Border.png and /dev/null differ diff --git a/OLDdata/images/masks/BorderFuture.png b/OLDdata/images/masks/BorderFuture.png deleted file mode 100644 index dcd20d4f..00000000 Binary files a/OLDdata/images/masks/BorderFuture.png and /dev/null differ diff --git a/OLDdata/images/masks/BorderInvention.png b/OLDdata/images/masks/BorderInvention.png deleted file mode 100644 index 4e7a3a5d..00000000 Binary files a/OLDdata/images/masks/BorderInvention.png and /dev/null differ diff --git a/OLDdata/images/masks/BorderPlaneswalker.png b/OLDdata/images/masks/BorderPlaneswalker.png deleted file mode 100644 index 79a49598..00000000 Binary files a/OLDdata/images/masks/BorderPlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/masks/BorderSeventh.png b/OLDdata/images/masks/BorderSeventh.png deleted file mode 100644 index ee74d92e..00000000 Binary files a/OLDdata/images/masks/BorderSeventh.png and /dev/null differ diff --git a/OLDdata/images/masks/BorderUnhinged.png b/OLDdata/images/masks/BorderUnhinged.png deleted file mode 100644 index 49d8e14a..00000000 Binary files a/OLDdata/images/masks/BorderUnhinged.png and /dev/null differ diff --git a/OLDdata/images/masks/BoxTopper.png b/OLDdata/images/masks/BoxTopper.png deleted file mode 100644 index b06dc700..00000000 Binary files a/OLDdata/images/masks/BoxTopper.png and /dev/null differ diff --git a/OLDdata/images/masks/Corners.png b/OLDdata/images/masks/Corners.png deleted file mode 100644 index d4f1d502..00000000 Binary files a/OLDdata/images/masks/Corners.png and /dev/null differ diff --git a/OLDdata/images/masks/Frame.png b/OLDdata/images/masks/Frame.png deleted file mode 100644 index 013ecf73..00000000 Binary files a/OLDdata/images/masks/Frame.png and /dev/null differ diff --git a/OLDdata/images/masks/FrameInvention.png b/OLDdata/images/masks/FrameInvention.png deleted file mode 100644 index 819b0837..00000000 Binary files a/OLDdata/images/masks/FrameInvention.png and /dev/null differ diff --git a/OLDdata/images/masks/FramePlaneswalker.png b/OLDdata/images/masks/FramePlaneswalker.png deleted file mode 100644 index 59e786dd..00000000 Binary files a/OLDdata/images/masks/FramePlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/masks/FrameSeventh.png b/OLDdata/images/masks/FrameSeventh.png deleted file mode 100644 index a5acaed2..00000000 Binary files a/OLDdata/images/masks/FrameSeventh.png and /dev/null differ diff --git a/OLDdata/images/masks/FrameUnhinged.png b/OLDdata/images/masks/FrameUnhinged.png deleted file mode 100644 index 602a0bb1..00000000 Binary files a/OLDdata/images/masks/FrameUnhinged.png and /dev/null differ diff --git a/OLDdata/images/masks/Full.png b/OLDdata/images/masks/Full.png deleted file mode 100644 index 25b6a5ac..00000000 Binary files a/OLDdata/images/masks/Full.png and /dev/null differ diff --git a/OLDdata/images/masks/IconFutureArtifact.png b/OLDdata/images/masks/IconFutureArtifact.png deleted file mode 100644 index ee121333..00000000 Binary files a/OLDdata/images/masks/IconFutureArtifact.png and /dev/null differ diff --git a/OLDdata/images/masks/IconFutureCreature.png b/OLDdata/images/masks/IconFutureCreature.png deleted file mode 100644 index 51115ab4..00000000 Binary files a/OLDdata/images/masks/IconFutureCreature.png and /dev/null differ diff --git a/OLDdata/images/masks/IconFutureEnchantment.png b/OLDdata/images/masks/IconFutureEnchantment.png deleted file mode 100644 index 7f9aceb4..00000000 Binary files a/OLDdata/images/masks/IconFutureEnchantment.png and /dev/null differ diff --git a/OLDdata/images/masks/IconFutureInstant.png b/OLDdata/images/masks/IconFutureInstant.png deleted file mode 100644 index aff4b167..00000000 Binary files a/OLDdata/images/masks/IconFutureInstant.png and /dev/null differ diff --git a/OLDdata/images/masks/IconFutureLand.png b/OLDdata/images/masks/IconFutureLand.png deleted file mode 100644 index adfa6b18..00000000 Binary files a/OLDdata/images/masks/IconFutureLand.png and /dev/null differ diff --git a/OLDdata/images/masks/IconFutureMulti.png b/OLDdata/images/masks/IconFutureMulti.png deleted file mode 100644 index 442dea45..00000000 Binary files a/OLDdata/images/masks/IconFutureMulti.png and /dev/null differ diff --git a/OLDdata/images/masks/IconFutureSorcery.png b/OLDdata/images/masks/IconFutureSorcery.png deleted file mode 100644 index 0e3dfd27..00000000 Binary files a/OLDdata/images/masks/IconFutureSorcery.png and /dev/null differ diff --git a/OLDdata/images/masks/LeftHalf.png b/OLDdata/images/masks/LeftHalf.png deleted file mode 100644 index cc5441f3..00000000 Binary files a/OLDdata/images/masks/LeftHalf.png and /dev/null differ diff --git a/OLDdata/images/masks/LeftThird.png b/OLDdata/images/masks/LeftThird.png deleted file mode 100644 index 2faa0ae8..00000000 Binary files a/OLDdata/images/masks/LeftThird.png and /dev/null differ diff --git a/OLDdata/images/masks/LeftTwoThirds.png b/OLDdata/images/masks/LeftTwoThirds.png deleted file mode 100644 index aa943a38..00000000 Binary files a/OLDdata/images/masks/LeftTwoThirds.png and /dev/null differ diff --git a/OLDdata/images/masks/Legend.png b/OLDdata/images/masks/Legend.png deleted file mode 100644 index b1b4cbf8..00000000 Binary files a/OLDdata/images/masks/Legend.png and /dev/null differ diff --git a/OLDdata/images/masks/LegendWithBorder.png b/OLDdata/images/masks/LegendWithBorder.png deleted file mode 100644 index beeffde1..00000000 Binary files a/OLDdata/images/masks/LegendWithBorder.png and /dev/null differ diff --git a/OLDdata/images/masks/LoyaltyPlaneswalker.png b/OLDdata/images/masks/LoyaltyPlaneswalker.png deleted file mode 100644 index d1113d2c..00000000 Binary files a/OLDdata/images/masks/LoyaltyPlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/masks/MiddleThird.png b/OLDdata/images/masks/MiddleThird.png deleted file mode 100644 index 566a5951..00000000 Binary files a/OLDdata/images/masks/MiddleThird.png and /dev/null differ diff --git a/OLDdata/images/masks/Pinline.png b/OLDdata/images/masks/Pinline.png deleted file mode 100644 index 2e9c6cd1..00000000 Binary files a/OLDdata/images/masks/Pinline.png and /dev/null differ diff --git a/OLDdata/images/masks/PinlineAlternate.png b/OLDdata/images/masks/PinlineAlternate.png deleted file mode 100644 index a5f093dc..00000000 Binary files a/OLDdata/images/masks/PinlineAlternate.png and /dev/null differ diff --git a/OLDdata/images/masks/PinlineExpedition.png b/OLDdata/images/masks/PinlineExpedition.png deleted file mode 100644 index 164c8889..00000000 Binary files a/OLDdata/images/masks/PinlineExpedition.png and /dev/null differ diff --git a/OLDdata/images/masks/PinlineInvention.png b/OLDdata/images/masks/PinlineInvention.png deleted file mode 100644 index 4bc4be55..00000000 Binary files a/OLDdata/images/masks/PinlineInvention.png and /dev/null differ diff --git a/OLDdata/images/masks/PinlinePlaneswalker.png b/OLDdata/images/masks/PinlinePlaneswalker.png deleted file mode 100644 index b27cbba5..00000000 Binary files a/OLDdata/images/masks/PinlinePlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/masks/PinlineSeventh.png b/OLDdata/images/masks/PinlineSeventh.png deleted file mode 100644 index f7983f35..00000000 Binary files a/OLDdata/images/masks/PinlineSeventh.png and /dev/null differ diff --git a/OLDdata/images/masks/PinlineUnhinged.png b/OLDdata/images/masks/PinlineUnhinged.png deleted file mode 100644 index 2d0513c2..00000000 Binary files a/OLDdata/images/masks/PinlineUnhinged.png and /dev/null differ diff --git a/OLDdata/images/masks/RightHalf.png b/OLDdata/images/masks/RightHalf.png deleted file mode 100644 index a24cbe5e..00000000 Binary files a/OLDdata/images/masks/RightHalf.png and /dev/null differ diff --git a/OLDdata/images/masks/RightThird.png b/OLDdata/images/masks/RightThird.png deleted file mode 100644 index 477d274a..00000000 Binary files a/OLDdata/images/masks/RightThird.png and /dev/null differ diff --git a/OLDdata/images/masks/RightTwoThirds.png b/OLDdata/images/masks/RightTwoThirds.png deleted file mode 100644 index e31a6783..00000000 Binary files a/OLDdata/images/masks/RightTwoThirds.png and /dev/null differ diff --git a/OLDdata/images/masks/RulesText.png b/OLDdata/images/masks/RulesText.png deleted file mode 100644 index e904b68c..00000000 Binary files a/OLDdata/images/masks/RulesText.png and /dev/null differ diff --git a/OLDdata/images/masks/RulesTextExpedition.png b/OLDdata/images/masks/RulesTextExpedition.png deleted file mode 100644 index 25215edc..00000000 Binary files a/OLDdata/images/masks/RulesTextExpedition.png and /dev/null differ diff --git a/OLDdata/images/masks/RulesTextInvention.png b/OLDdata/images/masks/RulesTextInvention.png deleted file mode 100644 index cf2c49ed..00000000 Binary files a/OLDdata/images/masks/RulesTextInvention.png and /dev/null differ diff --git a/OLDdata/images/masks/RulesTextPlaneswalker.png b/OLDdata/images/masks/RulesTextPlaneswalker.png deleted file mode 100644 index 84893340..00000000 Binary files a/OLDdata/images/masks/RulesTextPlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/masks/RulesTextSeventh.png b/OLDdata/images/masks/RulesTextSeventh.png deleted file mode 100644 index 632c0a17..00000000 Binary files a/OLDdata/images/masks/RulesTextSeventh.png and /dev/null differ diff --git a/OLDdata/images/masks/Title.png b/OLDdata/images/masks/Title.png deleted file mode 100644 index cbca8450..00000000 Binary files a/OLDdata/images/masks/Title.png and /dev/null differ diff --git a/OLDdata/images/masks/TitleExpedition.png b/OLDdata/images/masks/TitleExpedition.png deleted file mode 100644 index 80b31f6d..00000000 Binary files a/OLDdata/images/masks/TitleExpedition.png and /dev/null differ diff --git a/OLDdata/images/masks/TitleInvention.png b/OLDdata/images/masks/TitleInvention.png deleted file mode 100644 index 28f92353..00000000 Binary files a/OLDdata/images/masks/TitleInvention.png and /dev/null differ diff --git a/OLDdata/images/masks/TitlePlaneswalker.png b/OLDdata/images/masks/TitlePlaneswalker.png deleted file mode 100644 index 88713515..00000000 Binary files a/OLDdata/images/masks/TitlePlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/masks/TitleUnhinged.png b/OLDdata/images/masks/TitleUnhinged.png deleted file mode 100644 index e1715247..00000000 Binary files a/OLDdata/images/masks/TitleUnhinged.png and /dev/null differ diff --git a/OLDdata/images/masks/Type.png b/OLDdata/images/masks/Type.png deleted file mode 100644 index fac64594..00000000 Binary files a/OLDdata/images/masks/Type.png and /dev/null differ diff --git a/OLDdata/images/masks/TypeExpedition.png b/OLDdata/images/masks/TypeExpedition.png deleted file mode 100644 index d187b7c7..00000000 Binary files a/OLDdata/images/masks/TypeExpedition.png and /dev/null differ diff --git a/OLDdata/images/masks/TypeInvention.png b/OLDdata/images/masks/TypeInvention.png deleted file mode 100644 index ca2b9dd7..00000000 Binary files a/OLDdata/images/masks/TypeInvention.png and /dev/null differ diff --git a/OLDdata/images/masks/TypePlaneswalker.png b/OLDdata/images/masks/TypePlaneswalker.png deleted file mode 100644 index 459417da..00000000 Binary files a/OLDdata/images/masks/TypePlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/abilityLineEven.png b/OLDdata/images/planeswalker/abilityLineEven.png deleted file mode 100644 index 1f5cd84c..00000000 Binary files a/OLDdata/images/planeswalker/abilityLineEven.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/abilityLineEvenDarkened.png b/OLDdata/images/planeswalker/abilityLineEvenDarkened.png deleted file mode 100644 index bd239a9c..00000000 Binary files a/OLDdata/images/planeswalker/abilityLineEvenDarkened.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/abilityLineOdd.png b/OLDdata/images/planeswalker/abilityLineOdd.png deleted file mode 100644 index 24bd60b9..00000000 Binary files a/OLDdata/images/planeswalker/abilityLineOdd.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/abilityLineOddDarkened.png b/OLDdata/images/planeswalker/abilityLineOddDarkened.png deleted file mode 100644 index f5578b80..00000000 Binary files a/OLDdata/images/planeswalker/abilityLineOddDarkened.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/darkTwins.png b/OLDdata/images/planeswalker/darkTwins.png deleted file mode 100644 index 86734d5e..00000000 Binary files a/OLDdata/images/planeswalker/darkTwins.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/m15APlaneswalker.png b/OLDdata/images/planeswalker/m15APlaneswalker.png deleted file mode 100644 index 65860598..00000000 Binary files a/OLDdata/images/planeswalker/m15APlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/m15BPlaneswalker.png b/OLDdata/images/planeswalker/m15BPlaneswalker.png deleted file mode 100644 index d80aba89..00000000 Binary files a/OLDdata/images/planeswalker/m15BPlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/m15CPlaneswalker.png b/OLDdata/images/planeswalker/m15CPlaneswalker.png deleted file mode 100644 index 08df8676..00000000 Binary files a/OLDdata/images/planeswalker/m15CPlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/m15GPlaneswalker.png b/OLDdata/images/planeswalker/m15GPlaneswalker.png deleted file mode 100644 index 3c1ee313..00000000 Binary files a/OLDdata/images/planeswalker/m15GPlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/m15MPlaneswalker.png b/OLDdata/images/planeswalker/m15MPlaneswalker.png deleted file mode 100644 index 6affd7a5..00000000 Binary files a/OLDdata/images/planeswalker/m15MPlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/m15PlaneswalkerPT.png b/OLDdata/images/planeswalker/m15PlaneswalkerPT.png deleted file mode 100644 index 3ca7595c..00000000 Binary files a/OLDdata/images/planeswalker/m15PlaneswalkerPT.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/m15RPlaneswalker.png b/OLDdata/images/planeswalker/m15RPlaneswalker.png deleted file mode 100644 index 71c2364f..00000000 Binary files a/OLDdata/images/planeswalker/m15RPlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/m15UPlaneswalker.png b/OLDdata/images/planeswalker/m15UPlaneswalker.png deleted file mode 100644 index cd914947..00000000 Binary files a/OLDdata/images/planeswalker/m15UPlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/m15WPlaneswalker.png b/OLDdata/images/planeswalker/m15WPlaneswalker.png deleted file mode 100644 index be44c001..00000000 Binary files a/OLDdata/images/planeswalker/m15WPlaneswalker.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/planeswalkerCSV.csv b/OLDdata/images/planeswalker/planeswalkerCSV.csv deleted file mode 100644 index 3d7f28e6..00000000 --- a/OLDdata/images/planeswalker/planeswalkerCSV.csv +++ /dev/null @@ -1,11 +0,0 @@ -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 -Dark Twins,planeswalker/darkTwins.png,Full-0-0-744-1039;Title Planeswalker-0-0-744-1039;Type Planeswalker-0-0-744-1039,Planeswalker -Border,masks/BorderPlaneswalker.png,Full-0-0-744-1039;Border Planeswalker-0-0-744-1039,Planeswalker \ No newline at end of file diff --git a/OLDdata/images/planeswalker/planeswalkerMinus.png b/OLDdata/images/planeswalker/planeswalkerMinus.png deleted file mode 100644 index e09d3120..00000000 Binary files a/OLDdata/images/planeswalker/planeswalkerMinus.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/planeswalkerNeutral.png b/OLDdata/images/planeswalker/planeswalkerNeutral.png deleted file mode 100644 index 57bb42b7..00000000 Binary files a/OLDdata/images/planeswalker/planeswalkerNeutral.png and /dev/null differ diff --git a/OLDdata/images/planeswalker/planeswalkerPlus.png b/OLDdata/images/planeswalker/planeswalkerPlus.png deleted file mode 100644 index 4ba17eee..00000000 Binary files a/OLDdata/images/planeswalker/planeswalkerPlus.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhAFull.png b/OLDdata/images/seventh/seventhAFull.png deleted file mode 100644 index 81ec1b38..00000000 Binary files a/OLDdata/images/seventh/seventhAFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhBFull.png b/OLDdata/images/seventh/seventhBFull.png deleted file mode 100644 index 94c70b97..00000000 Binary files a/OLDdata/images/seventh/seventhBFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhBLFull.png b/OLDdata/images/seventh/seventhBLFull.png deleted file mode 100644 index 528e6bc3..00000000 Binary files a/OLDdata/images/seventh/seventhBLFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhCSV.csv b/OLDdata/images/seventh/seventhCSV.csv deleted file mode 100644 index b5d6755b..00000000 --- a/OLDdata/images/seventh/seventhCSV.csv +++ /dev/null @@ -1,16 +0,0 @@ -displayName,imagePath,maskOptions,framePickerOptions -White,seventh/seventhWFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Blue,seventh/seventhUFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Black,seventh/seventhBFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Red,seventh/seventhRFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Green,seventh/seventhGFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Multicolored,seventh/seventhMFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Artifact,seventh/seventhAFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -White Land,seventh/seventhWLFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Blue Land,seventh/seventhULFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Black Land,seventh/seventhBLFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Red Land,seventh/seventhRLFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Green Land,seventh/seventhGLFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Multicolored Land,seventh/seventhMLFull.png,Full-0-0-744-1039;Pinline Seventh-0-0-744-1039;Rules Text Seventh-0-0-744-1039,Seventh -Border,masks/BorderSeventh.png,Full-0-0-744-1039;Border Seventh-0-0-744-1039,Seventh -Foil Stamp,seventh/seventhFoilStamp.png,Full-81-867-300-115,Seventh \ No newline at end of file diff --git a/OLDdata/images/seventh/seventhFoilStamp.png b/OLDdata/images/seventh/seventhFoilStamp.png deleted file mode 100644 index dbee3ead..00000000 Binary files a/OLDdata/images/seventh/seventhFoilStamp.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhGFull.png b/OLDdata/images/seventh/seventhGFull.png deleted file mode 100644 index 39409f90..00000000 Binary files a/OLDdata/images/seventh/seventhGFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhGLFull.png b/OLDdata/images/seventh/seventhGLFull.png deleted file mode 100644 index 9c7cc815..00000000 Binary files a/OLDdata/images/seventh/seventhGLFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhMFull.png b/OLDdata/images/seventh/seventhMFull.png deleted file mode 100644 index 8f214238..00000000 Binary files a/OLDdata/images/seventh/seventhMFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhMLFull.png b/OLDdata/images/seventh/seventhMLFull.png deleted file mode 100644 index d0cb3429..00000000 Binary files a/OLDdata/images/seventh/seventhMLFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhRFull.png b/OLDdata/images/seventh/seventhRFull.png deleted file mode 100644 index 10fae618..00000000 Binary files a/OLDdata/images/seventh/seventhRFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhRLFull.png b/OLDdata/images/seventh/seventhRLFull.png deleted file mode 100644 index 5abe15f6..00000000 Binary files a/OLDdata/images/seventh/seventhRLFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhUFull.png b/OLDdata/images/seventh/seventhUFull.png deleted file mode 100644 index 78a1039c..00000000 Binary files a/OLDdata/images/seventh/seventhUFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhULFull.png b/OLDdata/images/seventh/seventhULFull.png deleted file mode 100644 index 69ba154d..00000000 Binary files a/OLDdata/images/seventh/seventhULFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhWFull.png b/OLDdata/images/seventh/seventhWFull.png deleted file mode 100644 index 29a69872..00000000 Binary files a/OLDdata/images/seventh/seventhWFull.png and /dev/null differ diff --git a/OLDdata/images/seventh/seventhWLFull.png b/OLDdata/images/seventh/seventhWLFull.png deleted file mode 100644 index d71b0c8d..00000000 Binary files a/OLDdata/images/seventh/seventhWLFull.png and /dev/null differ diff --git a/OLDdata/images/stamp.png b/OLDdata/images/stamp.png deleted file mode 100644 index 0477f1fe..00000000 Binary files a/OLDdata/images/stamp.png and /dev/null differ diff --git a/OLDdata/images/unhinged/unhingedBFull.png b/OLDdata/images/unhinged/unhingedBFull.png deleted file mode 100644 index 023966d0..00000000 Binary files a/OLDdata/images/unhinged/unhingedBFull.png and /dev/null differ diff --git a/OLDdata/images/unhinged/unhingedCFull.png b/OLDdata/images/unhinged/unhingedCFull.png deleted file mode 100644 index 48b5a833..00000000 Binary files a/OLDdata/images/unhinged/unhingedCFull.png and /dev/null differ diff --git a/OLDdata/images/unhinged/unhingedCSV.csv b/OLDdata/images/unhinged/unhingedCSV.csv deleted file mode 100644 index d2479268..00000000 --- a/OLDdata/images/unhinged/unhingedCSV.csv +++ /dev/null @@ -1,8 +0,0 @@ -displayName,imagePath,maskOptions,framePickerOptions -White,unhinged/unhingedWFull.png,Full-0-0-744-1039;Title Unhinged-0-0-744-1039;Pinline Unhinged-0-0-744-1039;Border Unhinged-0-0-744-1039,Unhinged -Blue,unhinged/unhingedUFull.png,Full-0-0-744-1039;Title Unhinged-0-0-744-1039;Pinline Unhinged-0-0-744-1039;Border Unhinged-0-0-744-1039,Unhinged -Black,unhinged/unhingedBFull.png,Full-0-0-744-1039;Title Unhinged-0-0-744-1039;Pinline Unhinged-0-0-744-1039;Border Unhinged-0-0-744-1039,Unhinged -Red,unhinged/unhingedRFull.png,Full-0-0-744-1039;Title Unhinged-0-0-744-1039;Pinline Unhinged-0-0-744-1039;Border Unhinged-0-0-744-1039,Unhinged -Green,unhinged/unhingedGFull.png,Full-0-0-744-1039;Title Unhinged-0-0-744-1039;Pinline Unhinged-0-0-744-1039;Border Unhinged-0-0-744-1039,Unhinged -Multicolored,unhinged/unhingedMFull.png,Full-0-0-744-1039;Title Unhinged-0-0-744-1039;Pinline Unhinged-0-0-744-1039;Border Unhinged-0-0-744-1039,Unhinged -Colorless,unhinged/unhingedCFull.png,Full-0-0-744-1039;Title Unhinged-0-0-744-1039;Pinline Unhinged-0-0-744-1039;Border Unhinged-0-0-744-1039,Unhinged \ No newline at end of file diff --git a/OLDdata/images/unhinged/unhingedGFull.png b/OLDdata/images/unhinged/unhingedGFull.png deleted file mode 100644 index fb248008..00000000 Binary files a/OLDdata/images/unhinged/unhingedGFull.png and /dev/null differ diff --git a/OLDdata/images/unhinged/unhingedMFull.png b/OLDdata/images/unhinged/unhingedMFull.png deleted file mode 100644 index 8272bcd6..00000000 Binary files a/OLDdata/images/unhinged/unhingedMFull.png and /dev/null differ diff --git a/OLDdata/images/unhinged/unhingedRFull.png b/OLDdata/images/unhinged/unhingedRFull.png deleted file mode 100644 index 7b7d19e6..00000000 Binary files a/OLDdata/images/unhinged/unhingedRFull.png and /dev/null differ diff --git a/OLDdata/images/unhinged/unhingedUFull.png b/OLDdata/images/unhinged/unhingedUFull.png deleted file mode 100644 index 34a005cd..00000000 Binary files a/OLDdata/images/unhinged/unhingedUFull.png and /dev/null differ diff --git a/OLDdata/images/unhinged/unhingedWFull.png b/OLDdata/images/unhinged/unhingedWFull.png deleted file mode 100644 index a91cfbe1..00000000 Binary files a/OLDdata/images/unhinged/unhingedWFull.png and /dev/null differ diff --git a/OLDdata/images/unsanctioned/unsanctionedCSV.csv b/OLDdata/images/unsanctioned/unsanctionedCSV.csv deleted file mode 100644 index eabcb665..00000000 --- a/OLDdata/images/unsanctioned/unsanctionedCSV.csv +++ /dev/null @@ -1,4 +0,0 @@ -displayName,imagePath,maskOptions,framePickerOptions -Full,unsanctioned/unsanctionedFull.png,Full-0-0-744-1039,Unsanctioned -Black Text Box,unsanctioned/unsanctionedTextFull.png,Full-0-0-744-1039,Unsanctioned -Black Filler,unsanctioned/unsanctionedFillerFull.png,Full-0-0-744-1039,Unsanctioned \ No newline at end of file diff --git a/OLDdata/images/unsanctioned/unsanctionedFillerFull.png b/OLDdata/images/unsanctioned/unsanctionedFillerFull.png deleted file mode 100644 index 0e672f6e..00000000 Binary files a/OLDdata/images/unsanctioned/unsanctionedFillerFull.png and /dev/null differ diff --git a/OLDdata/images/unsanctioned/unsanctionedFull.png b/OLDdata/images/unsanctioned/unsanctionedFull.png deleted file mode 100644 index a2505a17..00000000 Binary files a/OLDdata/images/unsanctioned/unsanctionedFull.png and /dev/null differ diff --git a/OLDdata/images/unsanctioned/unsanctionedTextFull.png b/OLDdata/images/unsanctioned/unsanctionedTextFull.png deleted file mode 100644 index 89800dc0..00000000 Binary files a/OLDdata/images/unsanctioned/unsanctionedTextFull.png and /dev/null differ diff --git a/OLDdata/scripts/colors.js b/OLDdata/scripts/colors.js deleted file mode 100644 index 42d13cde..00000000 --- a/OLDdata/scripts/colors.js +++ /dev/null @@ -1,45 +0,0 @@ -//Cycles through a rainbow! -setInterval(changeColor, 250) -var regularAdjust = 0//60 -var lightAdjust = 64//100 -var lightLead = 255 -var currentColorIndex = 0 -function changeColor() { - var colors = indexToColor(currentColorIndex) - document.documentElement.style.setProperty("--shifting-color-1", "rgb(" + parseInt(colors[0] + regularAdjust) + "," + parseInt(colors[1] + regularAdjust) + "," + parseInt(colors[2] + regularAdjust) + ")") - var lightColors = indexToColor(currentColorIndex + lightLead) - document.documentElement.style.setProperty("--shifting-color-1-light", "rgb(" + parseInt(lightColors[0] + lightAdjust) + "," + parseInt(lightColors[1] + lightAdjust) + "," + parseInt(lightColors[2] + lightAdjust) + ")") - currentColorIndex += 2.5 * 153 / 180 //The second number is how many seconds it takes to do a full loop -} -function indexToColor(colorIndex) { - var red = 0, green = 0, blue = 0 - var realColorIndex = colorIndex - Math.floor(colorIndex / 1530) * 1530 - var colorStage = Math.floor(realColorIndex / 255) - switch(colorStage) { - case 0: - green = 255 - red = realColorIndex - Math.floor(realColorIndex / 255) * 255 - break - case 1: - red = 255 - green = 255 - realColorIndex + Math.floor(realColorIndex / 255) * 255 - break - case 2: - red = 255 - blue = realColorIndex - Math.floor(realColorIndex / 255) * 255 - break - case 3: - blue = 255 - red = 255 - realColorIndex + Math.floor(realColorIndex / 255) * 255 - break - case 4: - blue = 255 - green = realColorIndex - Math.floor(realColorIndex / 255) * 255 - break - case 5: - green = 255 - blue = 255 - realColorIndex + Math.floor(realColorIndex / 255) * 255 - break - } - return [red, green, blue] -} diff --git a/OLDdata/scripts/main.js b/OLDdata/scripts/main.js deleted file mode 100644 index 17b64413..00000000 --- a/OLDdata/scripts/main.js +++ /dev/null @@ -1,1116 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -/* Initiate! */ -window.onload = initiate; -function initiate() { - window.CSVList = [] - window.version = {} - window.cardWidth = 744; - window.cardHeight = 1039; - window.creditColor = ""; - if (window.location.search != "") { - var parameters = window.location.search.replace('?', '').split('&'); - for (var i = 0; i < parameters.length; i ++) { - var targetParameter = parameters[i].split('='); - if (targetParameter[0] == 'width') { - cardWidth = parseInt(targetParameter[1]); - } else if (targetParameter[0] == 'height') { - cardHeight = parseInt(targetParameter[1]); - } - if (targetParameter[0] == 'creditColor') { - window.creditColor = "{fontcolor" + targetParameter[1] + "}"; - } - } - } - window.whichTextIndex = 0; - window.frameList = new Array(); - window.maskNameList = []; - window.maskList = []; - window.selectedFrame = -1; - window.selectedMask = ""; - window.updateTextDelay = setTimeout(rewriteText, 500); - window.cardMaster = document.getElementById("cardMaster"); - window.displayCanvas = document.getElementById("displayCanvas"); - document.getElementById("displayCanvas").width = cardWidth; - document.getElementById("displayCanvas").height = cardHeight; - window.displayContext = displayCanvas.getContext("2d"); - window.textCanvasesPadding = 100; - window.newFrameInsertionLocation = 1; - newCanvas("frameMask"); - newCanvas("frameFinal"); - newCanvas("text"); - newCanvas("line", textCanvasesPadding); - newCanvas("paragraph"); - newCanvas("bottomInfo"); - newCanvas("setSymbol"); - newCanvas("watermark"); - newCanvas("transparent"); - newCanvas("crop"); - newCanvas("temp"); - newCanvas("cardFinal"); - //Mana symbol Array setup - window.manaSymbolCodeList = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "w", "u", "b", "r", "g", "2w", "2u", "2b", "2r", "2g", "pw", "pu", "pb", "pr", "pg", "wu", "wb", "ub", "ur", "br", "bg", "rg", "rw", "gw", "gu", "x", "s", "c", "t","untap", "e", "y", "z", "1/2", "inf", "chaos", "plane", "l+", "l-", "l0", "oldtap", "artistbrush", "bar", "whiteBrush", "blackBrush"]; - window.manaSymbolImageList = []; - //Manually create a few important images - window.cardArt = new Image(); - window.setSymbol = new Image(); - window.watermark = new Image(); - cardArt.crossOrigin = "anonymous"; - setSymbol.crossOrigin = "anonymous"; - watermark.crossOrigin = "anonymous"; - cardArt.onload = function() { - if (this.width / this.height > version.artWidth / version.artHeight) { - document.getElementById("inputCardArtZoom").value = version.artHeight / this.height * 100; - } else { - document.getElementById("inputCardArtZoom").value = version.artWidth / this.width * 100; - } - document.getElementById("inputCardArtX").value = 0; - document.getElementById("inputCardArtY").value = 0; - cardMasterUpdated(); - document.getElementById("artPlaceholderImage").src = this.src; - } - setSymbol.onload = function() { - updateSetSymbol(); - } - watermark.onload = function() { - updateWatermark(); - } - //Load the mana symbol images - loadManaSymbolImages(); - //Loads up anything that uses Sortable.js - var sortable = Sortable.create(cardMaster, {animation: 150, ghostClass: "cardMasterElementMoving", handle: ".handle"}); - //Other little things - window.date = new Date() - document.getElementById("inputInfoNumber").value = date.getFullYear() - // randomSet(false) - //initiation is complete, ready to load image data - console.log("init done, time to set the card version"); - changeVersionTo("m15"); -// document.body.appendChild(cropCanvas); -} - - -/* Loads all the image info from the CSV! */ -function loadImageCSV(targetCSV) { - if (!CSVList.includes(targetCSV)) { - CSVList[CSVList.length] = targetCSV; - var xhttp = new XMLHttpRequest(); - xhttp.onreadystatechange = function() { - if (this.readyState == 4) { - var splitImageCSV = (xhttp.responseText + " ").split("\n"); - for (var i = 1; i < splitImageCSV.length; i++) { - var splitIndividualImageCSV = splitImageCSV[i].split(","); - frameList[frameList.length] = new frameImage(splitIndividualImageCSV[0], "data/images/" + splitIndividualImageCSV[1], splitIndividualImageCSV[2], splitIndividualImageCSV[3].toString()); - if (i == version.frameIndexToInsert + 1) { - version.trueFrameIndexToInsert = frameList.length - 1 - version.frameIndexToInsert = "none"; - frameList[frameList.length - 1].image.onload = function() { - cardMaster.insertBefore(frameList[version.trueFrameIndexToInsert].cardMasterElement("Full"), cardMaster.children[newFrameInsertionLocation]); - cardMasterUpdated(); - }; - } - } - for (var i = 0; i < frameList.length; i++) { - frameList[i].framePickerElement(); - } - console.log("image csv loaded, happy card conjuring!"); - //Inserts a frame! - if (version.frameIndexToInsert != "none") { - cardMaster.insertBefore(frameList[version.frameIndexToInsert].cardMasterElement("Full"), cardMaster.children[newFrameInsertionLocation]); -// version.frameIndexToInsert = "none"; - cardMasterUpdated(); - } - } - } - xhttp.open("GET", targetCSV, true); - xhttp.send(); - } -} - - -/* Image Class */ -class frameImage { - constructor(display, path, masks, classes) { - this.displayName = display; - this.image = new Image(); - this.image.crossOrigin = "anonymous"; - this.image.src = path; - this.maskOptionList = new Array(); - this.xList = new Array(); - this.yList = new Array(); - this.widthList = new Array(); - this.heightList = new Array(); - var splitMasks = masks.split(";"); - for (var i = 0; i < splitMasks.length; i++) { - var splitIndividualMasks = splitMasks[i].split("-"); - this.maskOptionList[i] = splitIndividualMasks[0]; - this.xList[i] = scale(parseInt(splitIndividualMasks[1])); - this.yList[i] = scale(parseInt(splitIndividualMasks[2])); - this.widthList[i] = scale(parseInt(splitIndividualMasks[3])); - this.heightList[i] = scale(parseInt(splitIndividualMasks[4])); - } - this.framePickerClasses = ["frameOption"] - if (classes.length > 0) { - this.framePickerClasses = ("frameOption;" + classes.slice(0,classes.length - 1)).replace(/;/g, ";frameClass").split(";"); - } - this.addedToFramePicker = false; - } - cardMasterElement(targetMask) { - var tempElement = document.createElement("div"); - tempElement.id = "frameIndex" + frameList.indexOf(this); - tempElement.classList.add("cardMasterElement"); - tempElement.innerHTML = "|||
" + this.displayName + " (" + targetMask + ")
x"; - return tempElement - } - framePickerElement(targetElement) { - if (!this.addedToFramePicker) { - this.addedToFramePicker = true; - var tempElement = document.createElement("div"); - tempElement.id = "frameIndex" + frameList.indexOf(this); - for (var i = 0; i < this.framePickerClasses.length; i++) { - tempElement.classList.add(this.framePickerClasses[i]); -// console.log(this.framePickerClasses) - } - tempElement.onclick = frameOptionClicked; - tempElement.innerHTML = ""; - document.getElementById("framePicker").appendChild(tempElement); -// return tempElement; - } else { - return - } - } -} - - -/* User input for card master */ -function frameOptionClicked(event) { - //Takes the clicked element, determines the right frame image index, sets the selected frame, and displays available masks - //most importantly, stores the selected frame under 'selectedFrame' - var clickedElement = event.target; - if (clickedElement.nodeName == "IMG") { - clickedElement = event.target.parentElement; - } - var frameOptionList = document.getElementsByClassName("frameOption"); - for (var i = 0; i < frameOptionList.length; i++) { - frameOptionList[i].classList.remove("frameOptionSelected"); - } - clickedElement.classList.add("frameOptionSelected"); - clickedElementIndex = clickedElement.id.replace("frameIndex", ""); - if (clickedElementIndex != selectedFrame) { - selectedFrame = parseInt(clickedElementIndex); - document.getElementById("maskPicker").innerHTML = ""; - for (var i = 0; i < frameList[selectedFrame].maskOptionList.length; i++) { -// alert(frameList[selectedFrame].maskOptionList); - document.getElementById("maskPicker").innerHTML += "
" + frameList[selectedFrame].maskOptionList[i] + "
"; - } - document.getElementsByClassName("maskOption")[0].classList.add("maskOptionSelected"); - selectedMask = document.getElementsByClassName("maskOption")[0].id.replace("maskName", ""); - document.getElementById("selectedFramePreview").innerHTML = "Selected: " + frameList[selectedFrame].displayName + " frame with a " + selectedMask + " mask"; - } -} -function maskOptionClicked(event) { - //Determines which mask was selected, and stores that value under 'selectedMask' - var clickedElement = event.target; - if (clickedElement.nodeName == "IMG") { - clickedElement = event.target.parentElement; - } - var maskOptionList = document.getElementsByClassName("maskOption"); - for (var i = 0; i < maskOptionList.length; i++) { - maskOptionList[i].classList.remove("maskOptionSelected"); - } - clickedElement.classList.add("maskOptionSelected"); - selectedMask = clickedElement.id.replace("maskName", ""); - document.getElementById("selectedFramePreview").innerHTML = "Selected: " + frameList[selectedFrame].displayName + " frame with a " + selectedMask + " mask"; -} -function addFrameToCardMaster(right = "") { - //Takes the stored selectedFrame and selectedMask to add the frame w/ mask to the card master! - if (selectedFrame > -1 && selectedMask != "") { - //In order to both keep input values and insert new frames before old ones, they must be added like so: - cardMaster.insertBefore(frameList[selectedFrame].cardMasterElement(selectedMask + right), cardMaster.children[newFrameInsertionLocation]); - cardMasterUpdated(); - } -} -function deleteCardMasterElement(event) { - event.target.parentElement.parentElement.removeChild(event.target.parentElement); - cardMasterUpdated(); -} -function addNewFrameOption(imageSource) { - var availableMasks = ""; - for (var i = 2; i < maskNameList.length; i++) { - availableMasks += maskNameList[i] + "-0-0-" + cardWidth + "-" + cardHeight + ";"; - } - availableMasks = availableMasks.substring(0, availableMasks.length - 1); - frameList[frameList.length] = new frameImage("Custom", imageSource, availableMasks, "Eternal;Custom "); - frameList[frameList.length - 1].image.customVar = frameList.length - 1; - frameList[frameList.length - 1].image.onload = function() { - frameList[this.customVar].framePickerElement(); - } -} - - -/* Card Master Cool Stuff! */ -function cardMasterUpdated() { -// console.log("The card master is updating!"); - frameFinalContext.clearRect(0, 0, cardWidth, cardHeight); - for (var i = cardMaster.children.length - 1; i >= 0; i--) { - var targetChild = cardMaster.children[i]; - if (parseInt(targetChild.id.replace("frameIndex", "")) == -1) { - //The card art placeholder is manually set to -1 and cannot be removed :) - frameFinalContext.drawImage(cardArt, version.artX + getValue("inputCardArtX"), version.artY + getValue("inputCardArtY"), cardArt.width * getValue("inputCardArtZoom") / 100, cardArt.height * getValue("inputCardArtZoom") / 100); - } else if (parseInt(targetChild.id.replace("frameIndex", "")) == -2) { - if (i == 0) { - newFrameInsertionLocation = 1; - } else { - newFrameInsertionLocation = 0; - } - frameFinalContext.drawImage(watermarkCanvas, 0, 0, cardWidth, cardHeight) - frameFinalContext.drawImage(textCanvas, 0, 0, cardWidth, cardHeight); - } else { - var frameToDraw = frameList[parseInt(targetChild.id.replace("frameIndex", ""))]; - var opacityToDraw = targetChild.children[1].children[1].value / 100; - var maskName = targetChild.innerHTML.slice(targetChild.innerHTML.indexOf("(") + 1, targetChild.innerHTML.indexOf(")")); - var sectionMask = "none" - if (maskName.includes(" - ")) { - sectionMask = maskName.split(" - ")[1]; - maskName = maskName.split(" - ")[0]; - } - var maskIndex = frameToDraw.maskOptionList.indexOf(maskName); - var maskImageIndex = maskNameList.indexOf(maskName) - //Clears the temporary mask canvas, draws the mask, draws the image over it, then copies it to the final frame canvas - frameMaskContext.globalCompositeOperation = "source-over"; - frameMaskContext.clearRect(0, 0, cardWidth, cardHeight); - frameMaskContext.drawImage(maskList[maskImageIndex], 0, 0, cardWidth, cardHeight); - frameMaskContext.globalCompositeOperation = "source-in"; - if (sectionMask != "none") { - frameMaskContext.drawImage(maskList[maskNameList.indexOf(sectionMask)], 0, 0, cardWidth, cardHeight); - } - frameMaskContext.drawImage(frameToDraw.image, frameToDraw.xList[maskIndex], frameToDraw.yList[maskIndex], frameToDraw.widthList[maskIndex], frameToDraw.heightList[maskIndex]); - if (targetChild.children[1].children[2].checked == true) { - frameFinalContext.globalCompositeOperation = "destination-out"; - } - frameFinalContext.globalAlpha = opacityToDraw; - frameFinalContext.drawImage(frameMaskCanvas, 0, 0, cardWidth, cardHeight); - frameFinalContext.globalAlpha = 1; - if (targetChild.children[1].children[2].checked == true) { - frameFinalContext.globalCompositeOperation = "destination-over"; - frameFinalContext.drawImage(cardArt, version.artX + getValue("inputCardArtX"), version.artY + getValue("inputCardArtY"), cardArt.width * getValue("inputCardArtZoom") / 100, cardArt.height * getValue("inputCardArtZoom") / 100); - } - frameFinalContext.globalCompositeOperation = "source-over"; - } - } - updateBottomInfoCanvas(); -} - - -/* Overall card stuff */ -function cardImageUpdated() { - //Clear the canvases - cardFinalContext.fillStyle = "black"; - cardFinalContext.fillRect(0, 0, cardWidth, cardHeight); - displayContext.clearRect(0, 0, cardWidth, cardHeight); - //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(frameFinalCanvas, 0, 0, cardWidth, cardHeight); - if (version.currentVersion == "planeswalker") { - cardFinalContext.drawImage(planeswalkerCanvas, 0, 0, cardWidth, cardHeight); - } - cardFinalContext.drawImage(bottomInfoCanvas, 0, 0, cardWidth, cardHeight); -// cardFinalContext.drawImage(textCanvas, 0, 0, cardWidth, cardHeight); - cardFinalContext.drawImage(setSymbolCanvas, 0, 0, cardWidth, cardHeight) - cardFinalContext.drawManaCost(document.getElementById("inputManaCost").value, version.manaCostX, version.manaCostY, version.manaCostDiameter, version.manaCostDistance, version.manaCostDirection, version.manaCostVersion) - //Clear the corners - cardFinalContext.globalCompositeOperation = "destination-out" - cardFinalContext.drawImage(maskList[1], 0, 0, cardWidth, cardHeight) - cardFinalContext.globalCompositeOperation = "source-over" - //Copy it to the visible canvas - displayContext.drawImage(cardFinalCanvas, 0, 0, cardWidth, cardHeight); -} - - -/* Loading/manipulating card versions */ -function changeVersionTo(versionToChangeTo) { - loadScript("data/versions/" + versionToChangeTo + ".js"); -} -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].crossOrigin = "anonymous"; - 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 ++) { - document.getElementById("inputWhichTextTabs").innerHTML += "
" + version.textList[i][0] + "
" - if (i == 0) { - document.getElementsByClassName("textTabButton")[0].classList.add("activeTextTab") - } - } - console.log("version changed, time to load the image csv") - if (targetCSV != false) { - loadImageCSV(targetCSV); - } -} - - -/* Text functions! */ -function textTabFunction(event, target) { - var textTabButtons = document.getElementsByClassName("textTabButton") - for (var i = 0; i < textTabButtons.length; i++) { - textTabButtons[i].classList.remove("activeTextTab") - } - event.target.classList.add("activeTextTab") - for (var i = 0; i < version.textList.length; i ++) { - if (version.textList[i][0] == target.replace("option", "")) { - whichTextIndex = i - document.getElementById("inputText").value = version.textList[whichTextIndex][1] - } - - } -} -function updateText() { - version.textList[whichTextIndex][1] = document.getElementById("inputText").value - clearTimeout(updateTextDelay) - updateTextDelay = setTimeout(rewriteText, 250); -} -function rewriteText() { - textContext.clearRect(0, 0, cardWidth, cardHeight) - for (var i = 0; i < version.textList.length; i ++) { - 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]); - } - } - cardMasterUpdated() -} - - -/* functions for all the little parts of the card */ -function updateBottomInfoCanvas() { - window[version.bottomInfoFunction]() -} - - -/* Misc/general convenient little functions */ -function scale(input) { - return input * cardWidth / 744; -} -function getValue(elementId) { - return parseFloat(document.getElementById(elementId).value) -} -function beforeAfter(targetString, beforeString, afterString) { - if (targetString.includes(beforeString) && targetString.includes(afterString)) { - return targetString.split(beforeString)[1].split(afterString)[0]; - } else { - return ""; - } -} - - -/* Functions that make stuff */ -function newCanvas(newCanvasName, padding = 0) { - window[newCanvasName + "Canvas"] = document.createElement("canvas"); - window[newCanvasName + "Canvas"].width = cardWidth + padding * 2; - window[newCanvasName + "Canvas"].height = cardHeight + padding * 2; - window[newCanvasName + "Context"] = window[newCanvasName + "Canvas"].getContext("2d"); -} - - -/* Functions that manage the website */ -function toggleTabs(event, targetTab, tabSubject) { - var tabList = document.getElementsByClassName(tabSubject); - for (var i = 0; i < tabList.length; i++) { - tabList[i].classList.remove("tabVisible"); - tabList[i].classList.remove("tabOptionSelected"); - } - document.getElementById(targetTab).classList.add("tabVisible"); - event.target.classList.add("tabOptionSelected"); -} -function loadScript(scriptPath){ - var script = document.createElement("script"); - script.setAttribute("type","text/javascript"); - script.setAttribute("src", scriptPath); - if (typeof script != "undefined") { - document.getElementsByTagName("head")[0].appendChild(script); - } -} - - - - -/* - Directly taken (with small edits) from previous version. - sort these!!! -*/ - - - - - -//figures out the placing of the set symbol -function updateSetSymbol() { - setSymbolContext.clearRect(0, 0, cardWidth, cardHeight) - var setSymbolWidth, setSymbolHeight, setSymbolX, setSymbolY - if (version.setSymbolWidth / version.setSymbolHeight < setSymbol.width / setSymbol.height) { - //wider - setSymbolWidth = version.setSymbolWidth - setSymbolHeight = version.setSymbolWidth / setSymbol.width * setSymbol.height - setSymbolX = version.setSymbolRight - setSymbolWidth - setSymbolY = version.setSymbolVertical - setSymbolHeight / 2 - } else { - //taller - setSymbolHeight = version.setSymbolHeight - setSymbolWidth = version.setSymbolHeight / setSymbol.height * setSymbol.width - setSymbolX = version.setSymbolRight - setSymbolWidth - setSymbolY = version.setSymbolVertical - setSymbolHeight / 2 - } - if (version.currentVersion == "future") { - //Also center the set symbol horizontally - setSymbolX = version.setSymbolRight - setSymbolWidth / 2; - } - setSymbolContext.drawImage(setSymbol, setSymbolX, setSymbolY, setSymbolWidth, setSymbolHeight) - cardImageUpdated() -} -function updateWatermark() { - if (document.getElementById("inputWatermarkPrimary").value != "none") { - watermarkContext.clearRect(0, 0, cardWidth, cardHeight) - var watermarkX, watermarkY, watermarkWidth, watermarkHeight - if (version.watermarkWidth / version.watermarkHeight < watermark.width / watermark.height) { - //wider - watermarkWidth = version.watermarkWidth - watermarkHeight = version.watermarkWidth / watermark.width * watermark.height - watermarkX = cardWidth / 2 - watermarkWidth / 2 - watermarkY = version.watermarkY - watermarkHeight / 2 - } else { - //taller - watermarkHeight = version.watermarkHeight - watermarkWidth = version.watermarkHeight / watermark.height * watermark.width - watermarkX = cardWidth / 2 - watermarkWidth / 2 - watermarkY = version.watermarkY - watermarkHeight / 2 - } - watermarkContext.drawImage(watermark, watermarkX, watermarkY, watermarkWidth, watermarkHeight) - watermarkContext.globalCompositeOperation = "source-in" - if (document.getElementById("inputWatermarkPrimary").value != "default") { - watermarkContext.fillStyle = document.getElementById("inputWatermarkPrimary").value - watermarkContext.fillRect(0, 0, cardWidth, cardHeight) - } - if (document.getElementById("inputWatermarkSecondary").value != "none") { - watermarkContext.globalCompositeOperation = "source-atop" - tempContext.clearRect(0, 0, cardWidth, cardHeight) - tempContext.drawImage(maskList[0], 0, 0, cardWidth, cardHeight) - tempContext.globalCompositeOperation = "source-in" - if (document.getElementById("inputWatermarkSecondary").value == "default") { - tempContext.drawImage(watermark, watermarkX, watermarkY, watermarkWidth, watermarkHeight) - } else { - tempContext.fillStyle = document.getElementById("inputWatermarkSecondary").value - tempContext.fillRect(0, 0, cardWidth, cardHeight) - } - tempContext.globalCompositeOperation = "source-over" - watermarkContext.drawImage(tempCanvas, 0, 0, cardWidth, cardHeight) - } - watermarkContext.globalCompositeOperation = "source-over" - } else { - watermarkContext.clearRect(0, 0, cardWidth, cardHeight) - } - cardMasterUpdated(); -} - -//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="", completionFunction) { - paragraphContext.clearRect(0, 0, cardWidth, cardHeight) - var textSize = inputTextSize - lineContext.font = textSize + "px " + textFont - lineContext.fillStyle = textColor - var otherParameters = other.split(",") - var outline, shadow = 0, oneLine = false, outlineWidth = 2, textAlign = "left", verticalAlign = true, lineSpace = 1, userHorizontalShift = 0 - for (var i = 0; i < otherParameters.length; i ++) { - eval(otherParameters[i]) - } - lineContext.strokeStyle = outline - lineContext.lineWidth = outlineWidth - var currentLineX = textCanvasesPadding + userHorizontalShift - var currentLineY = textY + (textSize * 0.45) //+ textCanvasesPadding - var uniqueSplitter = "9dn57gwbt4sh" - var splitString = text.replace(/\n/g, "{line}").replace(/ /g, uniqueSplitter + " " + uniqueSplitter).replace(/{/g, uniqueSplitter + "{").replace(/}/g, "}" + uniqueSplitter).split(uniqueSplitter) - splitString[splitString.length] = " " - var lastWordAdded = "" - for (var i = 0; i < splitString.length; i++) { - if (splitString[i] != "") { - var wordToWrite = splitString[i] - var finishLine = false - if (splitString[i].includes("{") && splitString[i].includes("}")) { - //It may be a code - wordToWrite = "" - possibleCodeLower = splitString[i].toLowerCase().replace("{", "").replace("}", "") - if (possibleCodeLower == "line" && !oneLine) { - finishLine = true - currentLineY += textSize * 0.35 - } else if (possibleCodeLower == "linenospace" && ! oneLine) { - finishLine = true - } else if (possibleCodeLower == "bar" || possibleCodeLower == "flavor") { - finishLine = true - var barWidth = manaSymbolImageList[63].width - var barHeight = manaSymbolImageList[63].height - lineContext.drawImage(manaSymbolImageList[63], textX + textWidth / 2 - barWidth / 2, currentLineY + textSize * 0.6, barWidth, barHeight) - currentLineY += textSize * 0.8 - if (possibleCodeLower == "flavor") { - lineContext.font = "italic " + (textSize - 3) + "px " + textFont - } - } else if (possibleCodeLower.includes("fontsize")) { - textSize += parseInt(possibleCodeLower.slice(8, possibleCodeLower.length)) - lineContext.font = textSize + "px " + textFont - } else if (possibleCodeLower == "i") { - lineContext.font = "italic " + textSize + "px " + textFont - } else if (possibleCodeLower == "/i") { - lineContext.font = textSize + "px " + textFont - } else if (possibleCodeLower == "center") { - textAlign = "center" - } else if (possibleCodeLower == "right") { - textAlign = "right" - } else if (possibleCodeLower == "left") { - textAlign = "left" - } else if (possibleCodeLower.includes("up")) { - currentLineY -= (parseInt(possibleCodeLower.slice(2, possibleCodeLower.length))) - } else if (possibleCodeLower.includes("down")) { - currentLineY += (parseInt(possibleCodeLower.slice(4, possibleCodeLower.length))) - } else if (possibleCodeLower.includes("left")) { - userHorizontalShift -= (parseInt(possibleCodeLower.slice(4, possibleCodeLower.length))); - currentLineX -= (parseInt(possibleCodeLower.slice(4, possibleCodeLower.length))); - } else if (possibleCodeLower.includes("right")) { - userHorizontalShift += (parseInt(possibleCodeLower.slice(5, possibleCodeLower.length))); - currentLineX += (parseInt(possibleCodeLower.slice(5, possibleCodeLower.length))); - } else if (possibleCodeLower == "artistbrush") { - var artistBrushWidth = textSize * 1.2 - lineContext.drawImage(manaSymbolImageList[62], currentLineX, currentLineY - artistBrushWidth * 0.58, artistBrushWidth, artistBrushWidth * 13 / 21) - currentLineX += artistBrushWidth * 1.1 - } else if (possibleCodeLower == "oldartistbrush") { - var artistBrushWidth = textSize * 2.4 - if (lineContext.fillStyle == "#ffffff" || lineContext.fillStyle == "white") { - lineContext.drawImage(manaSymbolImageList[64], currentLineX, currentLineY - artistBrushWidth * 13 / 63, artistBrushWidth, artistBrushWidth * 13 / 63); - } else { - lineContext.drawImage(manaSymbolImageList[65], currentLineX, currentLineY - artistBrushWidth * 13 / 63, artistBrushWidth, artistBrushWidth * 13 / 63); - } - currentLineX += artistBrushWidth * 1.1 - } else if (possibleCodeLower.includes("fontcolor")) { - lineContext.fillStyle = possibleCodeLower.slice(9, possibleCodeLower.length) - } else if (possibleCodeLower.includes("font")) { - textFont = possibleCodeLower.slice(5, possibleCodeLower.length) - 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 (possibleCodeLower.includes("shadow")) { - shadow = parseInt(possibleCodeLower.replace("shadow", "")); - } else if (manaSymbolCodeList.includes(possibleCodeLower.split("/").join(""))) { - //THIS HAS TO BE THE LAST ONE - var manaSymbolDiameter = textSize * 0.77 - lineContext.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf(possibleCodeLower.split("/").join(""))], currentLineX, currentLineY - manaSymbolDiameter * 0.95, manaSymbolDiameter, manaSymbolDiameter) - currentLineX += manaSymbolDiameter * 1.02 - } else { - wordToWrite = splitString[i] - } - } - if (wordToWrite != "" || finishLine == true) { - //We're left with a word. Write it. - var currentWordWidth = lineContext.measureText(wordToWrite).width - if (i == splitString.length - 1) { - //forces the last artificially added space to be too wide, making sure the last line is drawn in. - currentWordWidth = textWidth + 1 - } - if (currentLineX - textCanvasesPadding + currentWordWidth > textWidth || finishLine) { - //Finish the line - if (oneLine && i != splitString.length - 1 && inputTextSize > 1) { - lineContext.clearRect(0, 0, cardWidth + 2 * textCanvasesPadding, cardHeight + 2 * textCanvasesPadding) - this.writeText(text, textX, textY, textWidth, textHeight, textFont, inputTextSize - 1, textColor, other) - return - } - var alignAdjust = 0 - if (textAlign == "center" || textAlign == "right") { - if (lastWordAdded == " ") { - currentLineX -= textContext.measureText(" ").width - } - if (textAlign == "center") { - alignAdjust = textWidth / 2 - (currentLineX - textCanvasesPadding) / 2 + textX - } else if (textAlign == "right") { - alignAdjust = textWidth + textX - currentLineX + textCanvasesPadding - } - } else { - alignAdjust += textX - } - paragraphContext.drawImage(lineCanvas, 0 + alignAdjust - textCanvasesPadding, 0, cardWidth + 2 * textCanvasesPadding, cardHeight + 2 * textCanvasesPadding) - lineContext.clearRect(0, 0, cardWidth + 2 * textCanvasesPadding, cardHeight + 2 * textCanvasesPadding) - currentLineY += textSize * lineSpace - currentLineX = textCanvasesPadding + userHorizontalShift - if (wordToWrite == " ") { - currentWordWidth = 0 - } - } - //Whether or not the current line is finished, write to it. - if (shadow > 0) { - lineContext.fillStyle = "black"; - lineContext.fillText(wordToWrite, currentLineX + shadow, currentLineY + shadow); - lineContext.fillStyle = textColor; - } - if (outline != undefined) { - lineContext.strokeText(wordToWrite, currentLineX, currentLineY) - } - lineContext.fillText(wordToWrite, currentLineX, currentLineY) - currentLineX += currentWordWidth - lastWordAdded = wordToWrite - } - } - } - verticalAdjust = 0 - if (verticalAlign) { - verticalAdjust = (textHeight + textY - currentLineY + textSize) / 2 - } - this.drawImage(paragraphCanvas, 0, 0 + verticalAdjust, cardWidth, cardHeight) - if (text != "") { -// console.log(text) - } - if (completionFunction) { - window[completionFunction](); - } - return "done" -} -//Loads up all the mana symbol images -function loadManaSymbolImages() { - for (var i = 0; i < manaSymbolCodeList.length; i++) { - manaSymbolImageList[i] = new Image() - manaSymbolImageList[i].crossOrigin = "anonymous"; - manaSymbolImageList[i].src = "data/images/manaSymbols/" + i + ".png" - } -} -//Draws a mana cost -CanvasRenderingContext2D.prototype.drawManaCost = function(text, symbolsX, symbolsY, diameter = 50, distance = -50, direction = "horizontal", version = "m15") { - var splitManaCost = text.toLowerCase().replace(/{/g, " ").replace(/}/g, " ").split("/").join("").split(" ") - if (version == "future") { - splitManaCost.reverse(); - } - var currentSymbolIndex = 0 - var currentX = symbolsX - var currentY = symbolsY - var realManaCostIndex = 0; - for (var i = splitManaCost.length - 1; i >= 0; i --) { - if (manaSymbolCodeList.includes(splitManaCost[i])) { -// console.log(realManaCostIndex, splitManaCost[i]) - if (Array.isArray(direction) && realManaCostIndex < direction.length) { - currentX = direction[realManaCostIndex][0] - currentY = direction[realManaCostIndex][1] - } - if (version == "m15") { - this.fillStyle = "black" - this.beginPath() - this.arc(currentX + diameter / 2.13, currentY + diameter / 1.7, diameter / 2, 0, 2 * Math.PI, false) - this.fill() - this.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf(splitManaCost[i])], currentX, currentY, diameter, diameter) - } else if (version == "justTheSymbol") { - this.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf(splitManaCost[i])], currentX, currentY, diameter, diameter) - } else if (version == "seventh") { - this.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf(splitManaCost[i])], currentX, currentY, diameter, diameter) - } else if (version == "future") { - if (realManaCostIndex < direction.length) { - if (window.version.futureManaSymbolNameList.includes(splitManaCost[i]) && window.version.futureManaSymbolImageList[window.version.futureManaSymbolNameList.indexOf(splitManaCost[i])]) { - this.drawImage(window.version.futureManaSymbolImageList[window.version.futureManaSymbolNameList.indexOf(splitManaCost[i])], currentX, currentY, diameter, diameter) - } else { - this.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf(splitManaCost[i])], currentX, currentY, diameter, diameter) - } - } - } - if (direction == "horizontal") { - currentX += distance - } else if (direction == "vertical") { - currentY += distance - } - realManaCostIndex += 1; - } - } -} - -//Removes all the white pixels in an image -var whiteThreshold = 250 -function whiteToTransparent(targetImage, source = targetImage.src) { - //Create image, size canvas, draw image - var imgTempTarget = new Image() - imgTempTarget.crossOrigin = "anonymous" - imgTempTarget.src = source - imgTempTarget.onload = function() { - if (imgTempTarget.width > 0 && imgTempTarget.height > 0) { - transparentCanvas.width = imgTempTarget.width - transparentCanvas.height = imgTempTarget.height - transparentContext.drawImage(imgTempTarget, 0, 0) - //declare variables - var width = transparentCanvas.width - var height = transparentCanvas.height - var imageData = transparentContext.getImageData(0, 0, transparentCanvas.width, transparentCanvas.height) - var x, y, index - //Go through every pixel and - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - index = (y * width + x) * 4 - if (imageData.data[index] >= whiteThreshold && imageData.data[index + 1] >= whiteThreshold && imageData.data[index + 2] >= whiteThreshold) { - imageData.data[index + 3] = 0 - } - } - } - transparentContext.clearRect(0, 0, width, height) - transparentContext.putImageData(imageData, 0, 0) - targetImage.src = transparentCanvas.toDataURL() - autocrop(targetImage) - } - } -} -//Removes all the whitespace in an image -function autocrop(targetImage, source = targetImage.src) { - //Create image, size canvas, draw image - var imgTempTarget = new Image() - imgTempTarget.crossOrigin = "anonymous" - imgTempTarget.src = source - imgTempTarget.onload = function() { - if (imgTempTarget.width > 0 && imgTempTarget.height > 0) { - cropCanvas.width = imgTempTarget.width - cropCanvas.height = imgTempTarget.height - cropContext.drawImage(imgTempTarget, 0, 0) - //declare variables - var width = cropCanvas.width - var height = cropCanvas.height - var pix = {x:[], y:[]} - var imageData = cropContext.getImageData(0, 0, cropCanvas.width, cropCanvas.height) - var x, y, index - if (imageData.data.length > 4) { - //Go through every pixel and - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - //(y * width + x) * 4 + 3 calculates the index at which the alpha value of the pixel at x, y is given - index = (y * width + x) * 4 + 3 - if (imageData.data[index] > 0) { - //pix is the image object that stores two arrays of x and y coordinates. These stored coordinates are all the visible pixels - pix.x.push(x) - pix.y.push(y) - } - } - } - //sorts the arrays numerically - pix.x.sort(function(a,b){return a-b}); - pix.y.sort(function(a,b){return a-b}); - var n = pix.x.length - 1; - //Finds the difference between the leftmost and rightmost visible pixels, and the topmost and bottommost pixels, cuts out a section of the canvas - width = pix.x[n] - pix.x[0]; - height = pix.y[n] - pix.y[0]; - var cropped = cropContext.getImageData(pix.x[0], pix.y[0], width + 1, height + 1); - //Resizes the canvas and draws cropped image - cropCanvas.width = width + 1; - cropCanvas.height = height + 1; - cropContext.putImageData(cropped, 0, 0); - //Saves the newly cropped image to the given image - setTimeout(function() {targetImage.src = cropCanvas.toDataURL();}, 100) - } - } - } -} -//The next several functions are all about loading images! -function uploadImage(event, destination) { - var input = event.target; - var reader = new FileReader(); - reader.onload = function() { - var dataURL = reader.result; - destination.src = dataURL; - if (destination == setSymbol) { - autocrop(setSymbol) - } - } - reader.readAsDataURL(input.files[0]); -} -function retrieveLocalURL(event) { - var input = event.target; - var reader = new FileReader(); - reader.onload = function() { - addNewFrameOption(reader.result) - // return reader.result; - } - reader.readAsDataURL(input.files[0]); -} -var savedArtList = [], cardArtUrlList = [], cardArtArtistList = [] -function inputCardArtName(cardArtNameInput) { - var xhttp = new XMLHttpRequest() - xhttp.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - savedArtList = this.responseText.split('"art_crop":"') - savedArtList.splice(0, 1) - document.getElementById("inputCardArtNameNumber").max = savedArtList.length - document.getElementById("inputCardArtNameNumber").value = 1 - for (i = 0; i < savedArtList.length; i ++) { - cardArtUrlList[i] = savedArtList[i].split('","border_crop":')[0] - } - for (i = 0; i < savedArtList.length; i ++) { - cardArtArtistList[i] = savedArtList[i].slice(savedArtList[i].indexOf('"artist":"') + 10, savedArtList[i].indexOf('","artist_id')); - // cardArtArtistList[i] = cardArtArtistList[i].slice(0, cardArtArtistList[i].indexOf('","artist_id')) - } - inputCardArtNameNumber(1) - } else if (this.readyState == 4 && this.status == 404) { - alert("Sorry, but we can't seem to find any art for '" + cardArtNameInput + "'") - } - } - xhttp.open("GET", "https://api.scryfall.com/cards/search?order=released&unique=art&q=name%3D" + cardArtNameInput.replace(/ /g, "_"), true) - xhttp.send() -} -function inputCardArtNameNumber(cardArtNameNumberInput) { - cardArt.src = cardArtUrlList[cardArtNameNumberInput - 1] - document.getElementById("inputInfoArtist").value = cardArtArtistList[cardArtNameNumberInput - 1] - updateBottomInfoCanvas() -} -//Downloads the image! -function downloadCardImage(linkElement) { - if (document.getElementById("inputInfoArtist").value.replace(/ /g, "") != "") { - linkElement.download = version.textList[0][1].toLowerCase().replace(/ /g, "_") + ".png" - if (linkElement.download == ".png") { - linkElement.download = "card.png" - } - } else { - event.preventDefault() - alert("You must properly credit an artist before downloading") - } - var cardImageData = cardFinalCanvas.toDataURL() - if (cardImageData == undefined) { - alert("Sorry, it seems that you cannot download your card. Please try using a different browser/device.") - } - linkElement.href = cardImageData -} - - - - -// function setCookie(cookieName, cookieValue, cookieTime = (5 * 365 * 24 * 60 * 60 * 1000)) { //years*days*hours*minutes*seconds*milliseconds -// var tempDate = new Date(); -// tempDate.setTime(tempDate.getTime() + cookieTime); -// var expires = "expires=" + tempDate.toUTCString(); -// document.cookie = cookieName + "=" + cookieValue + ";" + expires + ";path=/"; -// } -// function getCookie(cookieName) { -// var name = cookieName + "="; -// var cookieArray = document.cookie.split(";"); -// for(var i = 0; i < cookieArray.length; i++) { -// var tempCookie = cookieArray[i]; -// while (tempCookie.charAt(0) == " ") { -// tempCookie = tempCookie.substring(1); -// } -// if (tempCookie.indexOf(name) == 0) { -// return tempCookie.substring(name.length, tempCookie.length); -// } -// } -// return ""; -// } -// function checkCookies() { -// if (getCookie("tooltipsToggled") == "false") { -// toggleTooltips(false) -// document.getElementById("tooltipToggler").checked = false -// } -// if (getCookie("advancedBorders") == "true") { -// document.getElementById("checkboxAdvanced").checked = true -// hideShowFrameTypes() -// } -// } - - - - - - - - - - - - - - - - - -function textCodeTutorial() { - var textCodeTutorialString = `line-skips to the next line - _linenospace-skips to the next line, but doesn't add spacing - _bar-skips to the next line, and adds the flavor text bar - _flavor-skips to the next line, adds the flavor text bar, and italicizes the following text - _i-italicizes the following text - _/i-removes italics from the following text - _fontsize#-changes the font size to # pixels - _fontcolor#-changes the color to #. Can use color names, or hex codes - _left-justifies text to the left - _center-justifies text to the center - _right-justifies text to the right - _up#-moves the following text # pixels up - _down#-moves the following text # pixels down - _left#-moves the following text # pixels left - _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... - _outline:*,#-outlines the following text with # thickness and * color - _shadow#-creates a text shadow # pixels left and # pixels right` - var textCodeTutorialArray = textCodeTutorialString.split("_") - for (var i = 0; i < textCodeTutorialArray.length; i ++) { - document.getElementById("textCodeTutorial").innerHTML += "
{" + textCodeTutorialArray[i].split("-")[0] + "}
" + textCodeTutorialArray[i].split("-")[1] + "
" - } -} - -// //textCodeTutorial() -textCodeTutorial() -loadSampleImages() - - - - -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") - } - } -} - - -function loadSampleImages() { - var availableSamples = 12; - var samplesToLoad = [0,0,0]; - for (var i = 1; i <= samplesToLoad.length; i ++) { - var sampleImage = new Image() - sampleImage.customVarIndex = i; - var randomIndex = 0; - sampleImage.onload = function() { - document.getElementById(("sample" + this.customVarIndex)).src = this.src; - } - while(samplesToLoad[i - 1] == 0) { - randomIndex = Math.floor(Math.random() * (availableSamples)) + 1; - if (!samplesToLoad.includes(randomIndex)) { - samplesToLoad[i - 1] = randomIndex; - } - } - sampleImage.src = "data/site/images/samples/" + randomIndex + ".png"; - } - //Donate card stuff! - var cardWishlist = [["Riku of Two Reflections", "https://img.scryfall.com/cards/large/front/7/1/716d0b3b-bac9-4fb8-882e-bd6171864043.jpg?1562916032"], ["Klothys, God of Destiny", "https://img.scryfall.com/cards/large/front/4/d/4d747889-04db-4e7a-ad4c-7549514b5112.jpg?1577968427"], ["Ramunap Excavator", "https://img.scryfall.com/cards/large/front/9/0/90a54d18-8403-441d-a115-ee462fabdabb.jpg?1562806928"], ["Birds of Paradise", "https://img.scryfall.com/cards/large/front/f/e/feefe9f0-24a6-461c-9ef1-86c5a6f33b83.jpg?1576382980"], ["Xantcha, Sleeper Agent", "https://img.scryfall.com/cards/large/front/8/9/89b03b9a-7e20-47cb-bc64-23513acea855.jpg?1566340797"],["Adobe Photoshop... Wait, that's not a card! Regardless, I would love to see what frames I could add if I had photoshop","https://i0.wp.com/www.keysbundle.com/wp-content/uploads/2019/09/768px-Adobe_Photoshop_CC_icon.svg.png?fit=768%2C749&ssl=1"]]; - var randomWishlistCard = cardWishlist[Math.floor(Math.random() * cardWishlist.length)]; - document.getElementById("wishlistCardName").innerHTML = randomWishlistCard[0]; - var wishlistCardImage = new Image(); - wishlistCardImage.onload = function() { - document.getElementById("wishlistCardImage").src = this.src; - } - wishlistCardImage.src = randomWishlistCard[1]; -} - - - -function toggleFrameOptionVisibility() { - var frameOptionList = document.getElementsByClassName("frameOption") - if (document.getElementById("inputCheckboxHideFrames").checked) { - for (var i = 0; i < frameOptionList.length; i ++) { - frameOptionList[i].classList.remove("visibilityOverride"); - } - } else { - for (var i = 0; i < frameOptionList.length; i ++) { - frameOptionList[i].classList.add("visibilityOverride"); - } - } -} - -//inputCardNameNumberTextImport -var savedImportResponse = "" -function inputCardNameTextImport(cardName) { - var xhttp = new XMLHttpRequest(); - xhttp.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - savedImportResponse = this.responseText.split('{"object":"card"'); - inputCardNameNumberTextImport(1); - document.getElementById("inputCardNameNumberTextImport").max = savedImportResponse.length - 1; - document.getElementById("inputCardNameNumberTextImport").value = 1; - } else if (this.readyState == 4 && this.status == 404) { - savedImportResponse = "" - alert("Sorry, but we can't seem to find any card named '" + cardName + "'"); - } - } - xhttp.open("GET", "https://api.scryfall.com/cards/search?order=released&q=name%3D" + cardName.replace(/ /g, "+"), true); - xhttp.send(); -} -function inputCardNameNumberTextImport(index) { - var importCardTextResponse = savedImportResponse[index]//.split('{"object":"related_card"')[0] - importText(beforeAfter(importCardTextResponse, '"name":"', '",'), "Title"); - importText(beforeAfter(importCardTextResponse, '"type_line":"', '",'), "Type"); - importText(beforeAfter(importCardTextResponse, '"oracle_text":"', '",').replace(/\\n/g, "\n").replace(/ \\"/g, ' \u201C').replace(/\\"/g, '\u201D').replace(/\(/g, "{i}(").replace(/\)/g, "){/i}"), "Rules Text"); - if (importCardTextResponse.includes('"power":"')) { - importText(beforeAfter(importCardTextResponse, '"power":"', '",') + "/" + beforeAfter(importCardTextResponse, '"toughness":"', '",'), "Power Toughness"); - } else { - importText("", "Power Toughness"); - } - if (importCardTextResponse.includes('"loyalty":"') && version.currentVersion == "planeswalker") { - importText(beforeAfter(importCardTextResponse, '"loyalty":"', '",'), "Loyalty"); - var abilityList = beforeAfter(importCardTextResponse, '"oracle_text":"', '",').replace(/ \\"/g, ' \u201C').replace(/\\"/g, '\u201D').split(/\\n/g); - for (var i = 0; i < abilityList.length; i++) { - var stringVersion = "" - switch(i) { - case 3: - stringVersion = "Fourth" - break; - case 2: - stringVersion = "Third" - break; - case 1: - stringVersion = "Second" - break; - default: - stringVersion = "First" - } - if (abilityList[i].slice(0, 4).includes(":")) { - importText(abilityList[i].split(/: (.+)?/)[1], stringVersion + " Ability"); - document.getElementById("inputPlaneswalker" + (i + 1) + "Icon").value = abilityList[i].split(/: (.+)?/)[0]; - } else { - importText("{left24}" + abilityList[i], stringVersion + " Ability"); - document.getElementById("inputPlaneswalker" + (i + 1) + "Icon").value = ""; - } - if (document.getElementById("inputPlaneswalker" + (i + 1)).value < 1) { - document.getElementById("inputPlaneswalker" + (i + 1)).value = 1; - } - } - } - document.getElementById("inputManaCost").value = beforeAfter(importCardTextResponse, '"mana_cost":"', '",'); - document.getElementById("inputCardArtName").value = beforeAfter(importCardTextResponse, '"name":"', '",'); - document.getElementById("inputSetCode").value = beforeAfter(importCardTextResponse, '"set":"', '",'); - document.getElementById("inputSetRarity").value = beforeAfter(importCardTextResponse, '"rarity":"', '",')[0]; - autocrop(setSymbol, "https://cors-anywhere.herokuapp.com/http://gatherer.wizards.com/Handlers/Image.ashx?type=symbol&set=" + document.getElementById("inputSetCode").value + "&size=large&rarity=" + document.getElementById("inputSetRarity").value); - inputCardArtName(beforeAfter(importCardTextResponse, '"name":"', '",')); -} -function importText(text, target) { - for (var i = 0; i < version.textList.length; i++) { - if (version.textList[i][0] == target) { - if (i == whichTextIndex) { - document.getElementById("inputText").value = text; - } else { - version.textList[i][1] = text; - } - updateText(); - } - } -} - - - - -var inputsToRemoveAutocorrect = document.querySelectorAll("input"); - -inputsToRemoveAutocorrect.forEach(input => { - input.setAttribute("autocomplete", "off") - input.setAttribute("autocorrect", "off") - input.setAttribute("autocapitalize", "off") - input.setAttribute("spellcheck", false) -}) - - - - diff --git a/OLDdata/scripts/setCodeList.js b/OLDdata/scripts/setCodeList.js deleted file mode 100644 index 25f6075c..00000000 --- a/OLDdata/scripts/setCodeList.js +++ /dev/null @@ -1,106 +0,0 @@ -/* -This is a list of set codes. -It has all been typed manually, so there are possibly errors, but let's hope not! -Duplicates found and removed: ORI, W17, CED -Sets not found: Astral, Deckmasters, Duels of the Planeswalkers -The codes have been resourced from the following: -https://en.wikipedia.org/wiki/List_of_Magic:_The_Gathering_sets -and -https://magic.wizards.com/en/products/card-set-archive -Last updated: 9-8-19 -Last set added: C19 -*/ -//Common through Rare -var setCodeListPreMythic = ['1E', '2E', '2U', '3E', '4E', '5E', '6E', '7E', '8ED', '9ED', '10E', 'AN', -'AQ', 'LE', 'DK', 'FE', 'HM', 'IA', 'AL', 'MI', 'VI', 'WL', 'TE', 'ST', 'EX', 'UZ', 'GU', 'AP', 'OD', -'TOR', 'JUD', 'ONS', 'LGN', 'SCG', 'MRD', 'DST', '5DN', 'CHK', 'BOK', 'SOK', 'RAV', 'GPT', 'DIS', 'CSP', -'TSP', 'PLC', 'FUT', 'LRW', 'MOR', 'SHM', 'EVE', 'PO', 'P2', 'PK', 'P3', 'P4', 'CH', 'BR', 'BD', 'EVG', -'UG', 'UNH', 'MED', 'ME2', 'ME3', 'ME4', 'HOP'] -//Common through Mythic -var setCodeListPostMythic = ['M10', 'M11', 'M12', 'M13', 'M14', 'M15', 'ORI', 'M19', 'ALA', 'CON', -'ARB', 'ZEN', 'WWK', 'ROE', 'SOM', 'MBS', 'NPH', 'ISD', 'DKA', 'AVR', 'RTR', 'GTC', 'DGM', 'THS', 'BNG', -'JOU', 'KTK', 'FRF', 'DTK', 'BFZ', 'OGW', 'SOI', 'EMN', 'KLD', 'AER', 'AKH', 'HOU', 'XLN', 'RIX', 'DOM', -'GRN', 'RNA', 'MH1', 'GS1', 'MD1', 'DD2', 'DDC', 'DDD', 'DDE', 'DDF', 'DDG', 'DDH', 'DDI', 'DDJ', 'DDK', -'DDL', 'DDM', 'DDN', 'DDP', 'DDQ', 'DDR', 'DDS', 'DDT', 'DDU', 'SS1', 'H09', 'PD2', 'PD3', 'MMA', 'MM2', -'EMA', 'MM3', 'IMA', 'A25', 'UMA', 'PC2', 'PCA', 'ARC', 'E01', 'CMD', 'CM1', 'C13', 'C14', 'C15', -'C16', 'CMA', 'C17', 'CM2', 'C18', 'CNS', 'CN2', 'E02', 'BBD', 'UST', 'VMA', 'TPR', 'W16', 'W17', -'GK1_IZZET', 'GK1_SELESN', 'GK1_BOROS', 'GK1_GOLGAR', 'GK2_RAKDOS', 'GK2_AZORIU', 'GK2_SIMIC', -'GK2_GRUUL', 'GK2_ORZHOV', 'WAR', 'M20', 'C19'] -//Only Rare -var setCodeListRareOnly = ['DRB'] -//Only Mythic -var setCodeListMythicOnly = ['V09', 'V10', 'V11', 'V12', 'V13', 'V14', 'V15', 'V16', 'V17', 'EXP', 'MPS_GRN'] -//Only Special -var setCodeListSpecialOnly = ['MPS_KLD', 'MPS_AKH'] -//Only Rare / Mythic -var setCodeListRareMythicOnly = ['SS2'] - -// randomSet(false) -function randomSet(updateHTML = true) { - var totalSetCount = setCodeListPreMythic.length + setCodeListPostMythic.length + setCodeListRareOnly.length + setCodeListMythicOnly.length + setCodeListSpecialOnly.length + setCodeListRareMythicOnly.length - var setIndex = Math.floor(Math.random() * (totalSetCount - 1)) - var possibleRarities, rarity, set - if (setIndex < setCodeListPreMythic.length) { - set = setCodeListPreMythic[setIndex] - possibleRarities = ["C", "U", "R"] - } else { - setIndex -= setCodeListPreMythic.length - if (setIndex < setCodeListPostMythic.length) { - set = setCodeListPostMythic[setIndex] - possibleRarities = ["C", "U", "R", "M"] - } else { - setIndex -= setCodeListPostMythic.length - if (setIndex < setCodeListRareOnly.length) { - set = setCodeListRareOnly[setIndex] - possibleRarities = ["R"] - } else { - setIndex -= setCodeListRareOnly.length - if (setIndex < setCodeListMythicOnly.length) { - set = setCodeListMythicOnly[setIndex] - possibleRarities = ["M"] - } else { - setIndex -= setCodeListMythicOnly.length - if (setIndex < setCodeListSpecialOnly.length) { - set = setCodeListSpecialOnly[setIndex] - possibleRarities = ["S"] - } else { - setIndex -= setCodeListSpecialOnly.length - if (setIndex < setCodeListRareMythicOnly.length) { - set = setCodeListRareMythicOnly[setIndex] - possibleRarities = ["M", "R"] - } else { - return - } - } - } - } - } - } - var findingRarity = true - while (findingRarity) { - switch(Math.floor(Math.random() * 5)) { - case 4: - rarity = "S" - break - case 3: - rarity = "M" - break - case 2: - rarity = "R" - break - case 1: - rarity = "U" - break - default: - rarity = "C" - } - if (possibleRarities.includes(rarity)) { - findingRarity = false - } - } - if (updateHTML) { - document.getElementById("inputSetCode").value = set - document.getElementById("inputSetRarity").value = rarity - } - setSymbol.src = "https://cors-anywhere.herokuapp.com/http://gatherer.wizards.com/Handlers/Image.ashx?type=symbol&set=" + set + "&size=large&rarity=" + rarity -} diff --git a/OLDdata/scripts/sortable.js b/OLDdata/scripts/sortable.js deleted file mode 100644 index 192a3659..00000000 --- a/OLDdata/scripts/sortable.js +++ /dev/null @@ -1,3695 +0,0 @@ -/**! - * Sortable 1.10.1 - * @author RubaXa - * @author owenm - * @license MIT - */ -function _typeof(obj) { - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - - return _typeof(obj); -} - -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); -} - -function _objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - var ownKeys = Object.keys(source); - - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); - } - - ownKeys.forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } - - return target; -} - -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; -} - -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - - var target = _objectWithoutPropertiesLoose(source, excluded); - - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - - return target; -} - -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); -} - -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } -} - -function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); -} - -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); -} - -var version = "1.10.1"; - -function userAgent(pattern) { - if (typeof window !== 'undefined' && window.navigator) { - return !! - /*@__PURE__*/ - navigator.userAgent.match(pattern); - } -} - -var IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i); -var Edge = userAgent(/Edge/i); -var FireFox = userAgent(/firefox/i); -var Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i); -var IOS = userAgent(/iP(ad|od|hone)/i); -var ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i); - -var captureMode = { - capture: false, - passive: false -}; - -function on(el, event, fn) { - el.addEventListener(event, fn, !IE11OrLess && captureMode); -} - -function off(el, event, fn) { - el.removeEventListener(event, fn, !IE11OrLess && captureMode); -} - -function matches( -/**HTMLElement*/ -el, -/**String*/ -selector) { - if (!selector) return; - selector[0] === '>' && (selector = selector.substring(1)); - - if (el) { - try { - if (el.matches) { - return el.matches(selector); - } else if (el.msMatchesSelector) { - return el.msMatchesSelector(selector); - } else if (el.webkitMatchesSelector) { - return el.webkitMatchesSelector(selector); - } - } catch (_) { - return false; - } - } - - return false; -} - -function getParentOrHost(el) { - return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode; -} - -function closest( -/**HTMLElement*/ -el, -/**String*/ -selector, -/**HTMLElement*/ -ctx, includeCTX) { - if (el) { - ctx = ctx || document; - - do { - if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) { - return el; - } - - if (el === ctx) break; - /* jshint boss:true */ - } while (el = getParentOrHost(el)); - } - - return null; -} - -var R_SPACE = /\s+/g; - -function toggleClass(el, name, state) { - if (el && name) { - if (el.classList) { - el.classList[state ? 'add' : 'remove'](name); - } else { - var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' '); - el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' '); - } - } -} - -function css(el, prop, val) { - var style = el && el.style; - - if (style) { - if (val === void 0) { - if (document.defaultView && document.defaultView.getComputedStyle) { - val = document.defaultView.getComputedStyle(el, ''); - } else if (el.currentStyle) { - val = el.currentStyle; - } - - return prop === void 0 ? val : val[prop]; - } else { - if (!(prop in style) && prop.indexOf('webkit') === -1) { - prop = '-webkit-' + prop; - } - - style[prop] = val + (typeof val === 'string' ? '' : 'px'); - } - } -} - -function matrix(el, selfOnly) { - var appliedTransforms = ''; - - if (typeof el === 'string') { - appliedTransforms = el; - } else { - do { - var transform = css(el, 'transform'); - - if (transform && transform !== 'none') { - appliedTransforms = transform + ' ' + appliedTransforms; - } - /* jshint boss:true */ - - } while (!selfOnly && (el = el.parentNode)); - } - - var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix; - /*jshint -W056 */ - - return matrixFn && new matrixFn(appliedTransforms); -} - -function find(ctx, tagName, iterator) { - if (ctx) { - var list = ctx.getElementsByTagName(tagName), - i = 0, - n = list.length; - - if (iterator) { - for (; i < n; i++) { - iterator(list[i], i); - } - } - - return list; - } - - return []; -} - -function getWindowScrollingElement() { - if (IE11OrLess) { - return document.documentElement; - } else { - return document.scrollingElement; - } -} -/** - * Returns the "bounding client rect" of given element - * @param {HTMLElement} el The element whose boundingClientRect is wanted - * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container - * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr - * @param {[Boolean]} undoScale Whether the container's scale() should be undone - * @param {[HTMLElement]} container The parent the element will be placed in - * @return {Object} The boundingClientRect of el, with specified adjustments - */ - - -function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) { - if (!el.getBoundingClientRect && el !== window) return; - var elRect, top, left, bottom, right, height, width; - - if (el !== window && el !== getWindowScrollingElement()) { - elRect = el.getBoundingClientRect(); - top = elRect.top; - left = elRect.left; - bottom = elRect.bottom; - right = elRect.right; - height = elRect.height; - width = elRect.width; - } else { - top = 0; - left = 0; - bottom = window.innerHeight; - right = window.innerWidth; - height = window.innerHeight; - width = window.innerWidth; - } - - if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) { - // Adjust for translate() - container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312) - // Not needed on <= IE11 - - if (!IE11OrLess) { - do { - if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) { - var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container - - top -= containerRect.top + parseInt(css(container, 'border-top-width')); - left -= containerRect.left + parseInt(css(container, 'border-left-width')); - bottom = top + elRect.height; - right = left + elRect.width; - break; - } - /* jshint boss:true */ - - } while (container = container.parentNode); - } - } - - if (undoScale && el !== window) { - // Adjust for scale() - var elMatrix = matrix(container || el), - scaleX = elMatrix && elMatrix.a, - scaleY = elMatrix && elMatrix.d; - - if (elMatrix) { - top /= scaleY; - left /= scaleX; - width /= scaleX; - height /= scaleY; - bottom = top + height; - right = left + width; - } - } - - return { - top: top, - left: left, - bottom: bottom, - right: right, - width: width, - height: height - }; -} -/** - * Checks if a side of an element is scrolled past a side of its parents - * @param {HTMLElement} el The element who's side being scrolled out of view is in question - * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom') - * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom') - * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element - */ - - -function isScrolledPast(el, elSide, parentSide) { - var parent = getParentAutoScrollElement(el, true), - elSideVal = getRect(el)[elSide]; - /* jshint boss:true */ - - while (parent) { - var parentSideVal = getRect(parent)[parentSide], - visible = void 0; - - if (parentSide === 'top' || parentSide === 'left') { - visible = elSideVal >= parentSideVal; - } else { - visible = elSideVal <= parentSideVal; - } - - if (!visible) return parent; - if (parent === getWindowScrollingElement()) break; - parent = getParentAutoScrollElement(parent, false); - } - - return false; -} -/** - * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible) - * and non-draggable elements - * @param {HTMLElement} el The parent element - * @param {Number} childNum The index of the child - * @param {Object} options Parent Sortable's options - * @return {HTMLElement} The child at index childNum, or null if not found - */ - - -function getChild(el, childNum, options) { - var currentChild = 0, - i = 0, - children = el.children; - - while (i < children.length) { - if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) { - if (currentChild === childNum) { - return children[i]; - } - - currentChild++; - } - - i++; - } - - return null; -} -/** - * Gets the last child in the el, ignoring ghostEl or invisible elements (clones) - * @param {HTMLElement} el Parent element - * @param {selector} selector Any other elements that should be ignored - * @return {HTMLElement} The last child, ignoring ghostEl - */ - - -function lastChild(el, selector) { - var last = el.lastElementChild; - - while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) { - last = last.previousElementSibling; - } - - return last || null; -} -/** - * Returns the index of an element within its parent for a selected set of - * elements - * @param {HTMLElement} el - * @param {selector} selector - * @return {number} - */ - - -function index(el, selector) { - var index = 0; - - if (!el || !el.parentNode) { - return -1; - } - /* jshint boss:true */ - - - while (el = el.previousElementSibling) { - if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) { - index++; - } - } - - return index; -} -/** - * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements. - * The value is returned in real pixels. - * @param {HTMLElement} el - * @return {Array} Offsets in the format of [left, top] - */ - - -function getRelativeScrollOffset(el) { - var offsetLeft = 0, - offsetTop = 0, - winScroller = getWindowScrollingElement(); - - if (el) { - do { - var elMatrix = matrix(el), - scaleX = elMatrix.a, - scaleY = elMatrix.d; - offsetLeft += el.scrollLeft * scaleX; - offsetTop += el.scrollTop * scaleY; - } while (el !== winScroller && (el = el.parentNode)); - } - - return [offsetLeft, offsetTop]; -} -/** - * Returns the index of the object within the given array - * @param {Array} arr Array that may or may not hold the object - * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find - * @return {Number} The index of the object in the array, or -1 - */ - - -function indexOfObject(arr, obj) { - for (var i in arr) { - if (!arr.hasOwnProperty(i)) continue; - - for (var key in obj) { - if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i); - } - } - - return -1; -} - -function getParentAutoScrollElement(el, includeSelf) { - // skip to window - if (!el || !el.getBoundingClientRect) return getWindowScrollingElement(); - var elem = el; - var gotSelf = false; - - do { - // we don't need to get elem css if it isn't even overflowing in the first place (performance) - if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) { - var elemCSS = css(elem); - - if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) { - if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement(); - if (gotSelf || includeSelf) return elem; - gotSelf = true; - } - } - /* jshint boss:true */ - - } while (elem = elem.parentNode); - - return getWindowScrollingElement(); -} - -function extend(dst, src) { - if (dst && src) { - for (var key in src) { - if (src.hasOwnProperty(key)) { - dst[key] = src[key]; - } - } - } - - return dst; -} - -function isRectEqual(rect1, rect2) { - return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width); -} - -var _throttleTimeout; - -function throttle(callback, ms) { - return function () { - if (!_throttleTimeout) { - var args = arguments, - _this = this; - - if (args.length === 1) { - callback.call(_this, args[0]); - } else { - callback.apply(_this, args); - } - - _throttleTimeout = setTimeout(function () { - _throttleTimeout = void 0; - }, ms); - } - }; -} - -function cancelThrottle() { - clearTimeout(_throttleTimeout); - _throttleTimeout = void 0; -} - -function scrollBy(el, x, y) { - el.scrollLeft += x; - el.scrollTop += y; -} - -function clone(el) { - var Polymer = window.Polymer; - var $ = window.jQuery || window.Zepto; - - if (Polymer && Polymer.dom) { - return Polymer.dom(el).cloneNode(true); - } else if ($) { - return $(el).clone(true)[0]; - } else { - return el.cloneNode(true); - } -} - -function setRect(el, rect) { - css(el, 'position', 'absolute'); - css(el, 'top', rect.top); - css(el, 'left', rect.left); - css(el, 'width', rect.width); - css(el, 'height', rect.height); -} - -function unsetRect(el) { - css(el, 'position', ''); - css(el, 'top', ''); - css(el, 'left', ''); - css(el, 'width', ''); - css(el, 'height', ''); -} - -var expando = 'Sortable' + new Date().getTime(); - -function AnimationStateManager() { - var animationStates = [], - animationCallbackId; - return { - captureAnimationState: function captureAnimationState() { - animationStates = []; - if (!this.options.animation) return; - var children = [].slice.call(this.el.children); - children.forEach(function (child) { - if (css(child, 'display') === 'none' || child === Sortable.ghost) return; - animationStates.push({ - target: child, - rect: getRect(child) - }); - - var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation - - - if (child.thisAnimationDuration) { - var childMatrix = matrix(child, true); - - if (childMatrix) { - fromRect.top -= childMatrix.f; - fromRect.left -= childMatrix.e; - } - } - - child.fromRect = fromRect; - }); - }, - addAnimationState: function addAnimationState(state) { - animationStates.push(state); - }, - removeAnimationState: function removeAnimationState(target) { - animationStates.splice(indexOfObject(animationStates, { - target: target - }), 1); - }, - animateAll: function animateAll(callback) { - var _this = this; - - if (!this.options.animation) { - clearTimeout(animationCallbackId); - if (typeof callback === 'function') callback(); - return; - } - - var animating = false, - animationTime = 0; - animationStates.forEach(function (state) { - var time = 0, - target = state.target, - fromRect = target.fromRect, - toRect = getRect(target), - prevFromRect = target.prevFromRect, - prevToRect = target.prevToRect, - animatingRect = state.rect, - targetMatrix = matrix(target, true); - - if (targetMatrix) { - // Compensate for current animation - toRect.top -= targetMatrix.f; - toRect.left -= targetMatrix.e; - } - - target.toRect = toRect; - - if (target.thisAnimationDuration) { - // Could also check if animatingRect is between fromRect and toRect - if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect - (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) { - // If returning to same place as started from animation and on same axis - time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options); - } - } // if fromRect != toRect: animate - - - if (!isRectEqual(toRect, fromRect)) { - target.prevFromRect = fromRect; - target.prevToRect = toRect; - - if (!time) { - time = _this.options.animation; - } - - _this.animate(target, animatingRect, toRect, time); - } - - if (time) { - animating = true; - animationTime = Math.max(animationTime, time); - clearTimeout(target.animationResetTimer); - target.animationResetTimer = setTimeout(function () { - target.animationTime = 0; - target.prevFromRect = null; - target.fromRect = null; - target.prevToRect = null; - target.thisAnimationDuration = null; - }, time); - target.thisAnimationDuration = time; - } - }); - clearTimeout(animationCallbackId); - - if (!animating) { - if (typeof callback === 'function') callback(); - } else { - animationCallbackId = setTimeout(function () { - if (typeof callback === 'function') callback(); - }, animationTime); - } - - animationStates = []; - }, - animate: function animate(target, currentRect, toRect, duration) { - if (duration) { - css(target, 'transition', ''); - css(target, 'transform', ''); - var elMatrix = matrix(this.el), - scaleX = elMatrix && elMatrix.a, - scaleY = elMatrix && elMatrix.d, - translateX = (currentRect.left - toRect.left) / (scaleX || 1), - translateY = (currentRect.top - toRect.top) / (scaleY || 1); - target.animatingX = !!translateX; - target.animatingY = !!translateY; - css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)'); - repaint(target); // repaint - - css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : '')); - css(target, 'transform', 'translate3d(0,0,0)'); - typeof target.animated === 'number' && clearTimeout(target.animated); - target.animated = setTimeout(function () { - css(target, 'transition', ''); - css(target, 'transform', ''); - target.animated = false; - target.animatingX = false; - target.animatingY = false; - }, duration); - } - } - }; -} - -function repaint(target) { - return target.offsetWidth; -} - -function calculateRealTime(animatingRect, fromRect, toRect, options) { - return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation; -} - -var plugins = []; -var defaults = { - initializeByDefault: true -}; -var PluginManager = { - mount: function mount(plugin) { - // Set default static properties - for (var option in defaults) { - if (defaults.hasOwnProperty(option) && !(option in plugin)) { - plugin[option] = defaults[option]; - } - } - - plugins.push(plugin); - }, - pluginEvent: function pluginEvent(eventName, sortable, evt) { - var _this = this; - - this.eventCanceled = false; - - evt.cancel = function () { - _this.eventCanceled = true; - }; - - var eventNameGlobal = eventName + 'Global'; - plugins.forEach(function (plugin) { - if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable - - if (sortable[plugin.pluginName][eventNameGlobal]) { - sortable[plugin.pluginName][eventNameGlobal](_objectSpread({ - sortable: sortable - }, evt)); - } // Only fire plugin event if plugin is enabled in this sortable, - // and plugin has event defined - - - if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) { - sortable[plugin.pluginName][eventName](_objectSpread({ - sortable: sortable - }, evt)); - } - }); - }, - initializePlugins: function initializePlugins(sortable, el, defaults, options) { - plugins.forEach(function (plugin) { - var pluginName = plugin.pluginName; - if (!sortable.options[pluginName] && !plugin.initializeByDefault) return; - var initialized = new plugin(sortable, el, sortable.options); - initialized.sortable = sortable; - initialized.options = sortable.options; - sortable[pluginName] = initialized; // Add default options from plugin - - _extends(defaults, initialized.defaults); - }); - - for (var option in sortable.options) { - if (!sortable.options.hasOwnProperty(option)) continue; - var modified = this.modifyOption(sortable, option, sortable.options[option]); - - if (typeof modified !== 'undefined') { - sortable.options[option] = modified; - } - } - }, - getEventProperties: function getEventProperties(name, sortable) { - var eventProperties = {}; - plugins.forEach(function (plugin) { - if (typeof plugin.eventProperties !== 'function') return; - - _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name)); - }); - return eventProperties; - }, - modifyOption: function modifyOption(sortable, name, value) { - var modifiedValue; - plugins.forEach(function (plugin) { - // Plugin must exist on the Sortable - if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin - - if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') { - modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value); - } - }); - return modifiedValue; - } -}; - -function dispatchEvent(_ref) { - var sortable = _ref.sortable, - rootEl = _ref.rootEl, - name = _ref.name, - targetEl = _ref.targetEl, - cloneEl = _ref.cloneEl, - toEl = _ref.toEl, - fromEl = _ref.fromEl, - oldIndex = _ref.oldIndex, - newIndex = _ref.newIndex, - oldDraggableIndex = _ref.oldDraggableIndex, - newDraggableIndex = _ref.newDraggableIndex, - originalEvent = _ref.originalEvent, - putSortable = _ref.putSortable, - extraEventProperties = _ref.extraEventProperties; - sortable = sortable || rootEl && rootEl[expando]; - if (!sortable) return; - var evt, - options = sortable.options, - onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature - - if (window.CustomEvent && !IE11OrLess && !Edge) { - evt = new CustomEvent(name, { - bubbles: true, - cancelable: true - }); - } else { - evt = document.createEvent('Event'); - evt.initEvent(name, true, true); - } - - evt.to = toEl || rootEl; - evt.from = fromEl || rootEl; - evt.item = targetEl || rootEl; - evt.clone = cloneEl; - evt.oldIndex = oldIndex; - evt.newIndex = newIndex; - evt.oldDraggableIndex = oldDraggableIndex; - evt.newDraggableIndex = newDraggableIndex; - evt.originalEvent = originalEvent; - evt.pullMode = putSortable ? putSortable.lastPutMode : undefined; - - var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable)); - - for (var option in allEventProperties) { - evt[option] = allEventProperties[option]; - } - - if (rootEl) { - rootEl.dispatchEvent(evt); - } - - if (options[onName]) { - options[onName].call(sortable, evt); - } -} - -var pluginEvent = function pluginEvent(eventName, sortable) { - var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, - originalEvent = _ref.evt, - data = _objectWithoutProperties(_ref, ["evt"]); - - PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({ - dragEl: dragEl, - parentEl: parentEl, - ghostEl: ghostEl, - rootEl: rootEl, - nextEl: nextEl, - lastDownEl: lastDownEl, - cloneEl: cloneEl, - cloneHidden: cloneHidden, - dragStarted: moved, - putSortable: putSortable, - activeSortable: Sortable.active, - originalEvent: originalEvent, - oldIndex: oldIndex, - oldDraggableIndex: oldDraggableIndex, - newIndex: newIndex, - newDraggableIndex: newDraggableIndex, - hideGhostForTarget: _hideGhostForTarget, - unhideGhostForTarget: _unhideGhostForTarget, - cloneNowHidden: function cloneNowHidden() { - cloneHidden = true; - }, - cloneNowShown: function cloneNowShown() { - cloneHidden = false; - }, - dispatchSortableEvent: function dispatchSortableEvent(name) { - _dispatchEvent({ - sortable: sortable, - name: name, - originalEvent: originalEvent - }); - } - }, data)); -}; - -function _dispatchEvent(info) { - dispatchEvent(_objectSpread({ - putSortable: putSortable, - cloneEl: cloneEl, - targetEl: dragEl, - rootEl: rootEl, - oldIndex: oldIndex, - oldDraggableIndex: oldDraggableIndex, - newIndex: newIndex, - newDraggableIndex: newDraggableIndex - }, info)); -} - -var dragEl, - parentEl, - ghostEl, - rootEl, - nextEl, - lastDownEl, - cloneEl, - cloneHidden, - oldIndex, - newIndex, - oldDraggableIndex, - newDraggableIndex, - activeGroup, - putSortable, - awaitingDragStarted = false, - ignoreNextClick = false, - sortables = [], - tapEvt, - touchEvt, - lastDx, - lastDy, - tapDistanceLeft, - tapDistanceTop, - moved, - lastTarget, - lastDirection, - pastFirstInvertThresh = false, - isCircumstantialInvert = false, - targetMoveDistance, - // For positioning ghost absolutely -ghostRelativeParent, - ghostRelativeParentInitialScroll = [], - // (left, top) -_silent = false, - savedInputChecked = []; -/** @const */ - -var documentExists = typeof document !== 'undefined', - PositionGhostAbsolutely = IOS, - CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float', - // This will not pass for IE9, because IE9 DnD only works on anchors -supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'), - supportCssPointerEvents = function () { - if (!documentExists) return; // false when <= IE11 - - if (IE11OrLess) { - return false; - } - - var el = document.createElement('x'); - el.style.cssText = 'pointer-events:auto'; - return el.style.pointerEvents === 'auto'; -}(), - _detectDirection = function _detectDirection(el, options) { - var elCSS = css(el), - elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth), - child1 = getChild(el, 0, options), - child2 = getChild(el, 1, options), - firstChildCSS = child1 && css(child1), - secondChildCSS = child2 && css(child2), - firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width, - secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width; - - if (elCSS.display === 'flex') { - return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal'; - } - - if (elCSS.display === 'grid') { - return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal'; - } - - if (child1 && firstChildCSS["float"] && firstChildCSS["float"] !== 'none') { - var touchingSideChild2 = firstChildCSS["float"] === 'left' ? 'left' : 'right'; - return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal'; - } - - return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal'; -}, - _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) { - var dragElS1Opp = vertical ? dragRect.left : dragRect.top, - dragElS2Opp = vertical ? dragRect.right : dragRect.bottom, - dragElOppLength = vertical ? dragRect.width : dragRect.height, - targetS1Opp = vertical ? targetRect.left : targetRect.top, - targetS2Opp = vertical ? targetRect.right : targetRect.bottom, - targetOppLength = vertical ? targetRect.width : targetRect.height; - return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2; -}, - -/** - * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold. - * @param {Number} x X position - * @param {Number} y Y position - * @return {HTMLElement} Element of the first found nearest Sortable - */ -_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) { - var ret; - sortables.some(function (sortable) { - if (lastChild(sortable)) return; - var rect = getRect(sortable), - threshold = sortable[expando].options.emptyInsertThreshold, - insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold, - insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold; - - if (threshold && insideHorizontally && insideVertically) { - return ret = sortable; - } - }); - return ret; -}, - _prepareGroup = function _prepareGroup(options) { - function toFn(value, pull) { - return function (to, from, dragEl, evt) { - var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name; - - if (value == null && (pull || sameGroup)) { - // Default pull value - // Default pull and put value if same group - return true; - } else if (value == null || value === false) { - return false; - } else if (pull && value === 'clone') { - return value; - } else if (typeof value === 'function') { - return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt); - } else { - var otherGroup = (pull ? to : from).options.group.name; - return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1; - } - }; - } - - var group = {}; - var originalGroup = options.group; - - if (!originalGroup || _typeof(originalGroup) != 'object') { - originalGroup = { - name: originalGroup - }; - } - - group.name = originalGroup.name; - group.checkPull = toFn(originalGroup.pull, true); - group.checkPut = toFn(originalGroup.put); - group.revertClone = originalGroup.revertClone; - options.group = group; -}, - _hideGhostForTarget = function _hideGhostForTarget() { - if (!supportCssPointerEvents && ghostEl) { - css(ghostEl, 'display', 'none'); - } -}, - _unhideGhostForTarget = function _unhideGhostForTarget() { - if (!supportCssPointerEvents && ghostEl) { - css(ghostEl, 'display', ''); - } -}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position - - -if (documentExists) { - document.addEventListener('click', function (evt) { - if (ignoreNextClick) { - evt.preventDefault(); - evt.stopPropagation && evt.stopPropagation(); - evt.stopImmediatePropagation && evt.stopImmediatePropagation(); - ignoreNextClick = false; - return false; - } - }, true); -} - -var nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) { - if (dragEl) { - evt = evt.touches ? evt.touches[0] : evt; - - var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY); - - if (nearest) { - // Create imitation event - var event = {}; - - for (var i in evt) { - if (evt.hasOwnProperty(i)) { - event[i] = evt[i]; - } - } - - event.target = event.rootEl = nearest; - event.preventDefault = void 0; - event.stopPropagation = void 0; - - nearest[expando]._onDragOver(event); - } - } -}; - -var _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) { - if (dragEl) { - dragEl.parentNode[expando]._isOutsideThisEl(evt.target); - } -}; -/** - * @class Sortable - * @param {HTMLElement} el - * @param {Object} [options] - */ - - -function Sortable(el, options) { - if (!(el && el.nodeType && el.nodeType === 1)) { - throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(el)); - } - - this.el = el; // root element - - this.options = options = _extends({}, options); // Export instance - - el[expando] = this; - var defaults = { - group: null, - sort: true, - disabled: false, - store: null, - handle: null, - draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*', - swapThreshold: 1, - // percentage; 0 <= x <= 1 - invertSwap: false, - // invert always - invertedSwapThreshold: null, - // will be set to same as swapThreshold if default - removeCloneOnHide: true, - direction: function direction() { - return _detectDirection(el, this.options); - }, - ghostClass: 'sortable-ghost', - chosenClass: 'sortable-chosen', - dragClass: 'sortable-drag', - ignore: 'a, img', - filter: null, - preventOnFilter: true, - animation: 0, - easing: null, - setData: function setData(dataTransfer, dragEl) { - dataTransfer.setData('Text', dragEl.textContent); - }, - dropBubble: false, - dragoverBubble: false, - dataIdAttr: 'data-id', - delay: 0, - delayOnTouchOnly: false, - touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, - forceFallback: false, - fallbackClass: 'sortable-fallback', - fallbackOnBody: false, - fallbackTolerance: 0, - fallbackOffset: { - x: 0, - y: 0 - }, - supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window, - emptyInsertThreshold: 5 - }; - PluginManager.initializePlugins(this, el, defaults); // Set default options - - for (var name in defaults) { - !(name in options) && (options[name] = defaults[name]); - } - - _prepareGroup(options); // Bind all private methods - - - for (var fn in this) { - if (fn.charAt(0) === '_' && typeof this[fn] === 'function') { - this[fn] = this[fn].bind(this); - } - } // Setup drag mode - - - this.nativeDraggable = options.forceFallback ? false : supportDraggable; - - if (this.nativeDraggable) { - // Touch start threshold cannot be greater than the native dragstart threshold - this.options.touchStartThreshold = 1; - } // Bind events - - - if (options.supportPointer) { - on(el, 'pointerdown', this._onTapStart); - } else { - on(el, 'mousedown', this._onTapStart); - on(el, 'touchstart', this._onTapStart); - } - - if (this.nativeDraggable) { - on(el, 'dragover', this); - on(el, 'dragenter', this); - } - - sortables.push(this.el); // Restore sorting - - options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager - - _extends(this, AnimationStateManager()); -} - -Sortable.prototype = -/** @lends Sortable.prototype */ -{ - constructor: Sortable, - _isOutsideThisEl: function _isOutsideThisEl(target) { - if (!this.el.contains(target) && target !== this.el) { - lastTarget = null; - } - }, - _getDirection: function _getDirection(evt, target) { - return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction; - }, - _onTapStart: function _onTapStart( - /** Event|TouchEvent */ - evt) { - if (!evt.cancelable) return; - - var _this = this, - el = this.el, - options = this.options, - preventOnFilter = options.preventOnFilter, - type = evt.type, - touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt, - target = (touch || evt).target, - originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target, - filter = options.filter; - - _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group. - - - if (dragEl) { - return; - } - - if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) { - return; // only left button and enabled - } // cancel dnd if original target is content editable - - - if (originalTarget.isContentEditable) { - return; - } - - target = closest(target, options.draggable, el, false); - - if (target && target.animated) { - return; - } - - if (lastDownEl === target) { - // Ignoring duplicate `down` - return; - } // Get the index of the dragged element within its parent - - - oldIndex = index(target); - oldDraggableIndex = index(target, options.draggable); // Check filter - - if (typeof filter === 'function') { - if (filter.call(this, evt, target, this)) { - _dispatchEvent({ - sortable: _this, - rootEl: originalTarget, - name: 'filter', - targetEl: target, - toEl: el, - fromEl: el - }); - - pluginEvent('filter', _this, { - evt: evt - }); - preventOnFilter && evt.cancelable && evt.preventDefault(); - return; // cancel dnd - } - } else if (filter) { - filter = filter.split(',').some(function (criteria) { - criteria = closest(originalTarget, criteria.trim(), el, false); - - if (criteria) { - _dispatchEvent({ - sortable: _this, - rootEl: criteria, - name: 'filter', - targetEl: target, - fromEl: el, - toEl: el - }); - - pluginEvent('filter', _this, { - evt: evt - }); - return true; - } - }); - - if (filter) { - preventOnFilter && evt.cancelable && evt.preventDefault(); - return; // cancel dnd - } - } - - if (options.handle && !closest(originalTarget, options.handle, el, false)) { - return; - } // Prepare `dragstart` - - - this._prepareDragStart(evt, touch, target); - }, - _prepareDragStart: function _prepareDragStart( - /** Event */ - evt, - /** Touch */ - touch, - /** HTMLElement */ - target) { - var _this = this, - el = _this.el, - options = _this.options, - ownerDocument = el.ownerDocument, - dragStartFn; - - if (target && !dragEl && target.parentNode === el) { - var dragRect = getRect(target); - rootEl = el; - dragEl = target; - parentEl = dragEl.parentNode; - nextEl = dragEl.nextSibling; - lastDownEl = target; - activeGroup = options.group; - Sortable.dragged = dragEl; - tapEvt = { - target: dragEl, - clientX: (touch || evt).clientX, - clientY: (touch || evt).clientY - }; - tapDistanceLeft = tapEvt.clientX - dragRect.left; - tapDistanceTop = tapEvt.clientY - dragRect.top; - this._lastX = (touch || evt).clientX; - this._lastY = (touch || evt).clientY; - dragEl.style['will-change'] = 'all'; - - dragStartFn = function dragStartFn() { - pluginEvent('delayEnded', _this, { - evt: evt - }); - - if (Sortable.eventCanceled) { - _this._onDrop(); - - return; - } // Delayed drag has been triggered - // we can re-enable the events: touchmove/mousemove - - - _this._disableDelayedDragEvents(); - - if (!FireFox && _this.nativeDraggable) { - dragEl.draggable = true; - } // Bind the events: dragstart/dragend - - - _this._triggerDragStart(evt, touch); // Drag start event - - - _dispatchEvent({ - sortable: _this, - name: 'choose', - originalEvent: evt - }); // Chosen item - - - toggleClass(dragEl, options.chosenClass, true); - }; // Disable "draggable" - - - options.ignore.split(',').forEach(function (criteria) { - find(dragEl, criteria.trim(), _disableDraggable); - }); - on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent); - on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent); - on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent); - on(ownerDocument, 'mouseup', _this._onDrop); - on(ownerDocument, 'touchend', _this._onDrop); - on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox) - - if (FireFox && this.nativeDraggable) { - this.options.touchStartThreshold = 4; - dragEl.draggable = true; - } - - pluginEvent('delayStart', this, { - evt: evt - }); // Delay is impossible for native DnD in Edge or IE - - if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) { - if (Sortable.eventCanceled) { - this._onDrop(); - - return; - } // If the user moves the pointer or let go the click or touch - // before the delay has been reached: - // disable the delayed drag - - - on(ownerDocument, 'mouseup', _this._disableDelayedDrag); - on(ownerDocument, 'touchend', _this._disableDelayedDrag); - on(ownerDocument, 'touchcancel', _this._disableDelayedDrag); - on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler); - on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler); - options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler); - _this._dragStartTimer = setTimeout(dragStartFn, options.delay); - } else { - dragStartFn(); - } - } - }, - _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( - /** TouchEvent|PointerEvent **/ - e) { - var touch = e.touches ? e.touches[0] : e; - - if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) { - this._disableDelayedDrag(); - } - }, - _disableDelayedDrag: function _disableDelayedDrag() { - dragEl && _disableDraggable(dragEl); - clearTimeout(this._dragStartTimer); - - this._disableDelayedDragEvents(); - }, - _disableDelayedDragEvents: function _disableDelayedDragEvents() { - var ownerDocument = this.el.ownerDocument; - off(ownerDocument, 'mouseup', this._disableDelayedDrag); - off(ownerDocument, 'touchend', this._disableDelayedDrag); - off(ownerDocument, 'touchcancel', this._disableDelayedDrag); - off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler); - off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler); - off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler); - }, - _triggerDragStart: function _triggerDragStart( - /** Event */ - evt, - /** Touch */ - touch) { - touch = touch || evt.pointerType == 'touch' && evt; - - if (!this.nativeDraggable || touch) { - if (this.options.supportPointer) { - on(document, 'pointermove', this._onTouchMove); - } else if (touch) { - on(document, 'touchmove', this._onTouchMove); - } else { - on(document, 'mousemove', this._onTouchMove); - } - } else { - on(dragEl, 'dragend', this); - on(rootEl, 'dragstart', this._onDragStart); - } - - try { - if (document.selection) { - // Timeout neccessary for IE9 - _nextTick(function () { - document.selection.empty(); - }); - } else { - window.getSelection().removeAllRanges(); - } - } catch (err) {} - }, - _dragStarted: function _dragStarted(fallback, evt) { - - awaitingDragStarted = false; - - if (rootEl && dragEl) { - pluginEvent('dragStarted', this, { - evt: evt - }); - - if (this.nativeDraggable) { - on(document, 'dragover', _checkOutsideTargetEl); - } - - var options = this.options; // Apply effect - - !fallback && toggleClass(dragEl, options.dragClass, false); - toggleClass(dragEl, options.ghostClass, true); - Sortable.active = this; - fallback && this._appendGhost(); // Drag start event - - _dispatchEvent({ - sortable: this, - name: 'start', - originalEvent: evt - }); - } else { - this._nulling(); - } - }, - _emulateDragOver: function _emulateDragOver() { - if (touchEvt) { - this._lastX = touchEvt.clientX; - this._lastY = touchEvt.clientY; - - _hideGhostForTarget(); - - var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY); - var parent = target; - - while (target && target.shadowRoot) { - target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY); - if (target === parent) break; - parent = target; - } - - dragEl.parentNode[expando]._isOutsideThisEl(target); - - if (parent) { - do { - if (parent[expando]) { - var inserted = void 0; - inserted = parent[expando]._onDragOver({ - clientX: touchEvt.clientX, - clientY: touchEvt.clientY, - target: target, - rootEl: parent - }); - - if (inserted && !this.options.dragoverBubble) { - break; - } - } - - target = parent; // store last element - } - /* jshint boss:true */ - while (parent = parent.parentNode); - } - - _unhideGhostForTarget(); - } - }, - _onTouchMove: function _onTouchMove( - /**TouchEvent*/ - evt) { - if (tapEvt) { - var options = this.options, - fallbackTolerance = options.fallbackTolerance, - fallbackOffset = options.fallbackOffset, - touch = evt.touches ? evt.touches[0] : evt, - ghostMatrix = ghostEl && matrix(ghostEl), - scaleX = ghostEl && ghostMatrix && ghostMatrix.a, - scaleY = ghostEl && ghostMatrix && ghostMatrix.d, - relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent), - dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1), - dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging - - if (!Sortable.active && !awaitingDragStarted) { - if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) { - return; - } - - this._onDragStart(evt, true); - } - - if (ghostEl) { - if (ghostMatrix) { - ghostMatrix.e += dx - (lastDx || 0); - ghostMatrix.f += dy - (lastDy || 0); - } else { - ghostMatrix = { - a: 1, - b: 0, - c: 0, - d: 1, - e: dx, - f: dy - }; - } - - var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")"); - css(ghostEl, 'webkitTransform', cssMatrix); - css(ghostEl, 'mozTransform', cssMatrix); - css(ghostEl, 'msTransform', cssMatrix); - css(ghostEl, 'transform', cssMatrix); - lastDx = dx; - lastDy = dy; - touchEvt = touch; - } - - evt.cancelable && evt.preventDefault(); - } - }, - _appendGhost: function _appendGhost() { - // Bug if using scale(): https://stackoverflow.com/questions/2637058 - // Not being adjusted for - if (!ghostEl) { - var container = this.options.fallbackOnBody ? document.body : rootEl, - rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container), - options = this.options; // Position absolutely - - if (PositionGhostAbsolutely) { - // Get relatively positioned parent - ghostRelativeParent = container; - - while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) { - ghostRelativeParent = ghostRelativeParent.parentNode; - } - - if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) { - if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement(); - rect.top += ghostRelativeParent.scrollTop; - rect.left += ghostRelativeParent.scrollLeft; - } else { - ghostRelativeParent = getWindowScrollingElement(); - } - - ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent); - } - - ghostEl = dragEl.cloneNode(true); - toggleClass(ghostEl, options.ghostClass, false); - toggleClass(ghostEl, options.fallbackClass, true); - toggleClass(ghostEl, options.dragClass, true); - css(ghostEl, 'transition', ''); - css(ghostEl, 'transform', ''); - css(ghostEl, 'box-sizing', 'border-box'); - css(ghostEl, 'margin', 0); - css(ghostEl, 'top', rect.top); - css(ghostEl, 'left', rect.left); - css(ghostEl, 'width', rect.width); - css(ghostEl, 'height', rect.height); - css(ghostEl, 'opacity', '0.8'); - css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed'); - css(ghostEl, 'zIndex', '100000'); - css(ghostEl, 'pointerEvents', 'none'); - Sortable.ghost = ghostEl; - container.appendChild(ghostEl); // Set transform-origin - - css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%'); - } - }, - _onDragStart: function _onDragStart( - /**Event*/ - evt, - /**boolean*/ - fallback) { - var _this = this; - - var dataTransfer = evt.dataTransfer; - var options = _this.options; - pluginEvent('dragStart', this, { - evt: evt - }); - - if (Sortable.eventCanceled) { - this._onDrop(); - - return; - } - - pluginEvent('setupClone', this); - - if (!Sortable.eventCanceled) { - cloneEl = clone(dragEl); - cloneEl.draggable = false; - cloneEl.style['will-change'] = ''; - - this._hideClone(); - - toggleClass(cloneEl, this.options.chosenClass, false); - Sortable.clone = cloneEl; - } // #1143: IFrame support workaround - - - _this.cloneId = _nextTick(function () { - pluginEvent('clone', _this); - if (Sortable.eventCanceled) return; - - if (!_this.options.removeCloneOnHide) { - rootEl.insertBefore(cloneEl, dragEl); - } - - _this._hideClone(); - - _dispatchEvent({ - sortable: _this, - name: 'clone' - }); - }); - !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events - - if (fallback) { - ignoreNextClick = true; - _this._loopId = setInterval(_this._emulateDragOver, 50); - } else { - // Undo what was set in _prepareDragStart before drag started - off(document, 'mouseup', _this._onDrop); - off(document, 'touchend', _this._onDrop); - off(document, 'touchcancel', _this._onDrop); - - if (dataTransfer) { - dataTransfer.effectAllowed = 'move'; - options.setData && options.setData.call(_this, dataTransfer, dragEl); - } - - on(document, 'drop', _this); // #1276 fix: - - css(dragEl, 'transform', 'translateZ(0)'); - } - - awaitingDragStarted = true; - _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt)); - on(document, 'selectstart', _this); - moved = true; - - if (Safari) { - css(document.body, 'user-select', 'none'); - } - }, - // Returns true - if no further action is needed (either inserted or another condition) - _onDragOver: function _onDragOver( - /**Event*/ - evt) { - var el = this.el, - target = evt.target, - dragRect, - targetRect, - revert, - options = this.options, - group = options.group, - activeSortable = Sortable.active, - isOwner = activeGroup === group, - canSort = options.sort, - fromSortable = putSortable || activeSortable, - vertical, - _this = this, - completedFired = false; - - if (_silent) return; - - function dragOverEvent(name, extra) { - pluginEvent(name, _this, _objectSpread({ - evt: evt, - isOwner: isOwner, - axis: vertical ? 'vertical' : 'horizontal', - revert: revert, - dragRect: dragRect, - targetRect: targetRect, - canSort: canSort, - fromSortable: fromSortable, - target: target, - completed: completed, - onMove: function onMove(target, after) { - return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after); - }, - changed: changed - }, extra)); - } // Capture animation state - - - function capture() { - dragOverEvent('dragOverAnimationCapture'); - - _this.captureAnimationState(); - - if (_this !== fromSortable) { - fromSortable.captureAnimationState(); - } - } // Return invocation when dragEl is inserted (or completed) - - - function completed(insertion) { - dragOverEvent('dragOverCompleted', { - insertion: insertion - }); - - if (insertion) { - // Clones must be hidden before folding animation to capture dragRectAbsolute properly - if (isOwner) { - activeSortable._hideClone(); - } else { - activeSortable._showClone(_this); - } - - if (_this !== fromSortable) { - // Set ghost class to new sortable's ghost class - toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false); - toggleClass(dragEl, options.ghostClass, true); - } - - if (putSortable !== _this && _this !== Sortable.active) { - putSortable = _this; - } else if (_this === Sortable.active && putSortable) { - putSortable = null; - } // Animation - - - if (fromSortable === _this) { - _this._ignoreWhileAnimating = target; - } - - _this.animateAll(function () { - dragOverEvent('dragOverAnimationComplete'); - _this._ignoreWhileAnimating = null; - }); - - if (_this !== fromSortable) { - fromSortable.animateAll(); - fromSortable._ignoreWhileAnimating = null; - } - } // Null lastTarget if it is not inside a previously swapped element - - - if (target === dragEl && !dragEl.animated || target === el && !target.animated) { - lastTarget = null; - } // no bubbling and not fallback - - - if (!options.dragoverBubble && !evt.rootEl && target !== document) { - dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted - - - !insertion && nearestEmptyInsertDetectEvent(evt); - } - - !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation(); - return completedFired = true; - } // Call when dragEl has been inserted - - - function changed() { - newIndex = index(dragEl); - newDraggableIndex = index(dragEl, options.draggable); - - _dispatchEvent({ - sortable: _this, - name: 'change', - toEl: el, - newIndex: newIndex, - newDraggableIndex: newDraggableIndex, - originalEvent: evt - }); - } - - if (evt.preventDefault !== void 0) { - evt.cancelable && evt.preventDefault(); - } - - target = closest(target, options.draggable, el, true); - dragOverEvent('dragOver'); - if (Sortable.eventCanceled) return completedFired; - - if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) { - return completed(false); - } - - ignoreNextClick = false; - - if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list - : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) { - vertical = this._getDirection(evt, target) === 'vertical'; - dragRect = getRect(dragEl); - dragOverEvent('dragOverValid'); - if (Sortable.eventCanceled) return completedFired; - - if (revert) { - parentEl = rootEl; // actualization - - capture(); - - this._hideClone(); - - dragOverEvent('revert'); - - if (!Sortable.eventCanceled) { - if (nextEl) { - rootEl.insertBefore(dragEl, nextEl); - } else { - rootEl.appendChild(dragEl); - } - } - - return completed(true); - } - - var elLastChild = lastChild(el, options.draggable); - - if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) { - // If already at end of list: Do not insert - if (elLastChild === dragEl) { - return completed(false); - } // assign target only if condition is true - - - if (elLastChild && el === evt.target) { - target = elLastChild; - } - - if (target) { - targetRect = getRect(target); - } - - if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) { - capture(); - el.appendChild(dragEl); - parentEl = el; // actualization - - changed(); - return completed(true); - } - } else if (target.parentNode === el) { - targetRect = getRect(target); - var direction = 0, - targetBeforeFirstSwap, - differentLevel = dragEl.parentNode !== el, - differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical), - side1 = vertical ? 'top' : 'left', - scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'), - scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0; - - if (lastTarget !== target) { - targetBeforeFirstSwap = targetRect[side1]; - pastFirstInvertThresh = false; - isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel; - } - - direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target); - var sibling; - - if (direction !== 0) { - // Check if target is beside dragEl in respective direction (ignoring hidden elements) - var dragIndex = index(dragEl); - - do { - dragIndex -= direction; - sibling = parentEl.children[dragIndex]; - } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl)); - } // If dragEl is already beside target: Do not insert - - - if (direction === 0 || sibling === target) { - return completed(false); - } - - lastTarget = target; - lastDirection = direction; - var nextSibling = target.nextElementSibling, - after = false; - after = direction === 1; - - var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after); - - if (moveVector !== false) { - if (moveVector === 1 || moveVector === -1) { - after = moveVector === 1; - } - - _silent = true; - setTimeout(_unsilent, 30); - capture(); - - if (after && !nextSibling) { - el.appendChild(dragEl); - } else { - target.parentNode.insertBefore(dragEl, after ? nextSibling : target); - } // Undo chrome's scroll adjustment (has no effect on other browsers) - - - if (scrolledPastTop) { - scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop); - } - - parentEl = dragEl.parentNode; // actualization - // must be done before animation - - if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) { - targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]); - } - - changed(); - return completed(true); - } - } - - if (el.contains(dragEl)) { - return completed(false); - } - } - - return false; - }, - _ignoreWhileAnimating: null, - _offMoveEvents: function _offMoveEvents() { - off(document, 'mousemove', this._onTouchMove); - off(document, 'touchmove', this._onTouchMove); - off(document, 'pointermove', this._onTouchMove); - off(document, 'dragover', nearestEmptyInsertDetectEvent); - off(document, 'mousemove', nearestEmptyInsertDetectEvent); - off(document, 'touchmove', nearestEmptyInsertDetectEvent); - }, - _offUpEvents: function _offUpEvents() { - var ownerDocument = this.el.ownerDocument; - off(ownerDocument, 'mouseup', this._onDrop); - off(ownerDocument, 'touchend', this._onDrop); - off(ownerDocument, 'pointerup', this._onDrop); - off(ownerDocument, 'touchcancel', this._onDrop); - off(document, 'selectstart', this); - }, - _onDrop: function _onDrop( - /**Event*/ - evt) { - var el = this.el, - options = this.options; // Get the index of the dragged element within its parent - - newIndex = index(dragEl); - newDraggableIndex = index(dragEl, options.draggable); - pluginEvent('drop', this, { - evt: evt - }); - parentEl = dragEl && dragEl.parentNode; // Get again after plugin event - - newIndex = index(dragEl); - newDraggableIndex = index(dragEl, options.draggable); - - if (Sortable.eventCanceled) { - this._nulling(); - - return; - } - - awaitingDragStarted = false; - isCircumstantialInvert = false; - pastFirstInvertThresh = false; - clearInterval(this._loopId); - clearTimeout(this._dragStartTimer); - - _cancelNextTick(this.cloneId); - - _cancelNextTick(this._dragStartId); // Unbind events - - - if (this.nativeDraggable) { - off(document, 'drop', this); - off(el, 'dragstart', this._onDragStart); - } - - this._offMoveEvents(); - - this._offUpEvents(); - - if (Safari) { - css(document.body, 'user-select', ''); - } - - if (evt) { - if (moved) { - evt.cancelable && evt.preventDefault(); - !options.dropBubble && evt.stopPropagation(); - } - - ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl); - - if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') { - // Remove clone(s) - cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl); - } - - if (dragEl) { - if (this.nativeDraggable) { - off(dragEl, 'dragend', this); - } - - _disableDraggable(dragEl); - - dragEl.style['will-change'] = ''; // Remove classes - // ghostClass is added in dragStarted - - if (moved && !awaitingDragStarted) { - toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false); - //code added by me (Kyle) starts here! - cardMasterUpdated() - //code added by me (Kyle) ends here! - } - - toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event - - _dispatchEvent({ - sortable: this, - name: 'unchoose', - toEl: parentEl, - newIndex: null, - newDraggableIndex: null, - originalEvent: evt - }); - - if (rootEl !== parentEl) { - if (newIndex >= 0) { - // Add event - _dispatchEvent({ - rootEl: parentEl, - name: 'add', - toEl: parentEl, - fromEl: rootEl, - originalEvent: evt - }); // Remove event - - - _dispatchEvent({ - sortable: this, - name: 'remove', - toEl: parentEl, - originalEvent: evt - }); // drag from one list and drop into another - - - _dispatchEvent({ - rootEl: parentEl, - name: 'sort', - toEl: parentEl, - fromEl: rootEl, - originalEvent: evt - }); - - _dispatchEvent({ - sortable: this, - name: 'sort', - toEl: parentEl, - originalEvent: evt - }); - } - - putSortable && putSortable.save(); - } else { - if (newIndex !== oldIndex) { - if (newIndex >= 0) { - // drag & drop within the same list - _dispatchEvent({ - sortable: this, - name: 'update', - toEl: parentEl, - originalEvent: evt - }); - - _dispatchEvent({ - sortable: this, - name: 'sort', - toEl: parentEl, - originalEvent: evt - }); - } - } - } - - if (Sortable.active) { - /* jshint eqnull:true */ - if (newIndex == null || newIndex === -1) { - newIndex = oldIndex; - newDraggableIndex = oldDraggableIndex; - } - - _dispatchEvent({ - sortable: this, - name: 'end', - toEl: parentEl, - originalEvent: evt - }); // Save sorting - - - this.save(); - } - } - } - - this._nulling(); - }, - _nulling: function _nulling() { - pluginEvent('nulling', this); - rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null; - savedInputChecked.forEach(function (el) { - el.checked = true; - }); - savedInputChecked.length = lastDx = lastDy = 0; - }, - handleEvent: function handleEvent( - /**Event*/ - evt) { - switch (evt.type) { - case 'drop': - case 'dragend': - this._onDrop(evt); - - break; - - case 'dragenter': - case 'dragover': - if (dragEl) { - this._onDragOver(evt); - - _globalDragOver(evt); - } - - break; - - case 'selectstart': - evt.preventDefault(); - break; - } - }, - - /** - * Serializes the item into an array of string. - * @returns {String[]} - */ - toArray: function toArray() { - var order = [], - el, - children = this.el.children, - i = 0, - n = children.length, - options = this.options; - - for (; i < n; i++) { - el = children[i]; - - if (closest(el, options.draggable, this.el, false)) { - order.push(el.getAttribute(options.dataIdAttr) || _generateId(el)); - } - } - - return order; - }, - - /** - * Sorts the elements according to the array. - * @param {String[]} order order of the items - */ - sort: function sort(order) { - var items = {}, - rootEl = this.el; - this.toArray().forEach(function (id, i) { - var el = rootEl.children[i]; - - if (closest(el, this.options.draggable, rootEl, false)) { - items[id] = el; - } - }, this); - order.forEach(function (id) { - if (items[id]) { - rootEl.removeChild(items[id]); - rootEl.appendChild(items[id]); - } - }); - }, - - /** - * Save the current sorting - */ - save: function save() { - var store = this.options.store; - store && store.set && store.set(this); - }, - - /** - * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree. - * @param {HTMLElement} el - * @param {String} [selector] default: `options.draggable` - * @returns {HTMLElement|null} - */ - closest: function closest$1(el, selector) { - return closest(el, selector || this.options.draggable, this.el, false); - }, - - /** - * Set/get option - * @param {string} name - * @param {*} [value] - * @returns {*} - */ - option: function option(name, value) { - var options = this.options; - - if (value === void 0) { - return options[name]; - } else { - var modifiedValue = PluginManager.modifyOption(this, name, value); - - if (typeof modifiedValue !== 'undefined') { - options[name] = modifiedValue; - } else { - options[name] = value; - } - - if (name === 'group') { - _prepareGroup(options); - } - } - }, - - /** - * Destroy - */ - destroy: function destroy() { - pluginEvent('destroy', this); - var el = this.el; - el[expando] = null; - off(el, 'mousedown', this._onTapStart); - off(el, 'touchstart', this._onTapStart); - off(el, 'pointerdown', this._onTapStart); - - if (this.nativeDraggable) { - off(el, 'dragover', this); - off(el, 'dragenter', this); - } // Remove draggable attributes - - - Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) { - el.removeAttribute('draggable'); - }); - - this._onDrop(); - - sortables.splice(sortables.indexOf(this.el), 1); - this.el = el = null; - }, - _hideClone: function _hideClone() { - if (!cloneHidden) { - pluginEvent('hideClone', this); - if (Sortable.eventCanceled) return; - css(cloneEl, 'display', 'none'); - - if (this.options.removeCloneOnHide && cloneEl.parentNode) { - cloneEl.parentNode.removeChild(cloneEl); - } - - cloneHidden = true; - } - }, - _showClone: function _showClone(putSortable) { - if (putSortable.lastPutMode !== 'clone') { - this._hideClone(); - - return; - } - - if (cloneHidden) { - pluginEvent('showClone', this); - if (Sortable.eventCanceled) return; // show clone at dragEl or original position - - if (rootEl.contains(dragEl) && !this.options.group.revertClone) { - rootEl.insertBefore(cloneEl, dragEl); - } else if (nextEl) { - rootEl.insertBefore(cloneEl, nextEl); - } else { - rootEl.appendChild(cloneEl); - } - - if (this.options.group.revertClone) { - this.animate(dragEl, cloneEl); - } - - css(cloneEl, 'display', ''); - cloneHidden = false; - } - } -}; - -function _globalDragOver( -/**Event*/ -evt) { - if (evt.dataTransfer) { - evt.dataTransfer.dropEffect = 'move'; - } - - evt.cancelable && evt.preventDefault(); -} - -function _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) { - var evt, - sortable = fromEl[expando], - onMoveFn = sortable.options.onMove, - retVal; // Support for new CustomEvent feature - - if (window.CustomEvent && !IE11OrLess && !Edge) { - evt = new CustomEvent('move', { - bubbles: true, - cancelable: true - }); - } else { - evt = document.createEvent('Event'); - evt.initEvent('move', true, true); - } - - evt.to = toEl; - evt.from = fromEl; - evt.dragged = dragEl; - evt.draggedRect = dragRect; - evt.related = targetEl || toEl; - evt.relatedRect = targetRect || getRect(toEl); - evt.willInsertAfter = willInsertAfter; - evt.originalEvent = originalEvent; - fromEl.dispatchEvent(evt); - - if (onMoveFn) { - retVal = onMoveFn.call(sortable, evt, originalEvent); - } - - return retVal; -} - -function _disableDraggable(el) { - el.draggable = false; -} - -function _unsilent() { - _silent = false; -} - -function _ghostIsLast(evt, vertical, sortable) { - var rect = getRect(lastChild(sortable.el, sortable.options.draggable)); - var spacer = 10; - return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer; -} - -function _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) { - var mouseOnAxis = vertical ? evt.clientY : evt.clientX, - targetLength = vertical ? targetRect.height : targetRect.width, - targetS1 = vertical ? targetRect.top : targetRect.left, - targetS2 = vertical ? targetRect.bottom : targetRect.right, - invert = false; - - if (!invertSwap) { - // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold - if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) { - // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2 - // check if past first invert threshold on side opposite of lastDirection - if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) { - // past first invert threshold, do not restrict inverted threshold to dragEl shadow - pastFirstInvertThresh = true; - } - - if (!pastFirstInvertThresh) { - // dragEl shadow (target move distance shadow) - if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow - : mouseOnAxis > targetS2 - targetMoveDistance) { - return -lastDirection; - } - } else { - invert = true; - } - } else { - // Regular - if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) { - return _getInsertDirection(target); - } - } - } - - invert = invert || invertSwap; - - if (invert) { - // Invert of regular - if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) { - return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1; - } - } - - return 0; -} -/** - * Gets the direction dragEl must be swapped relative to target in order to make it - * seem that dragEl has been "inserted" into that element's position - * @param {HTMLElement} target The target whose position dragEl is being inserted at - * @return {Number} Direction dragEl must be swapped - */ - - -function _getInsertDirection(target) { - if (index(dragEl) < index(target)) { - return 1; - } else { - return -1; - } -} -/** - * Generate id - * @param {HTMLElement} el - * @returns {String} - * @private - */ - - -function _generateId(el) { - var str = el.tagName + el.className + el.src + el.href + el.textContent, - i = str.length, - sum = 0; - - while (i--) { - sum += str.charCodeAt(i); - } - - return sum.toString(36); -} - -function _saveInputCheckedState(root) { - savedInputChecked.length = 0; - var inputs = root.getElementsByTagName('input'); - var idx = inputs.length; - - while (idx--) { - var el = inputs[idx]; - el.checked && savedInputChecked.push(el); - } -} - -function _nextTick(fn) { - return setTimeout(fn, 0); -} - -function _cancelNextTick(id) { - return clearTimeout(id); -} // Fixed #973: - - -if (documentExists) { - on(document, 'touchmove', function (evt) { - if ((Sortable.active || awaitingDragStarted) && evt.cancelable) { - evt.preventDefault(); - } - }); -} // Export utils - - -Sortable.utils = { - on: on, - off: off, - css: css, - find: find, - is: function is(el, selector) { - return !!closest(el, selector, el, false); - }, - extend: extend, - throttle: throttle, - closest: closest, - toggleClass: toggleClass, - clone: clone, - index: index, - nextTick: _nextTick, - cancelNextTick: _cancelNextTick, - detectDirection: _detectDirection, - getChild: getChild -}; -/** - * Get the Sortable instance of an element - * @param {HTMLElement} element The element - * @return {Sortable|undefined} The instance of Sortable - */ - -Sortable.get = function (element) { - return element[expando]; -}; -/** - * Mount a plugin to Sortable - * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted - */ - - -Sortable.mount = function () { - for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) { - plugins[_key] = arguments[_key]; - } - - if (plugins[0].constructor === Array) plugins = plugins[0]; - plugins.forEach(function (plugin) { - if (!plugin.prototype || !plugin.prototype.constructor) { - throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(plugin)); - } - - if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils); - PluginManager.mount(plugin); - }); -}; -/** - * Create sortable instance - * @param {HTMLElement} el - * @param {Object} [options] - */ - - -Sortable.create = function (el, options) { - return new Sortable(el, options); -}; // Export - - -Sortable.version = version; - -var autoScrolls = [], - scrollEl, - scrollRootEl, - scrolling = false, - lastAutoScrollX, - lastAutoScrollY, - touchEvt$1, - pointerElemChangedInterval; - -function AutoScrollPlugin() { - function AutoScroll() { - this.defaults = { - scroll: true, - scrollSensitivity: 30, - scrollSpeed: 10, - bubbleScroll: true - }; // Bind all private methods - - for (var fn in this) { - if (fn.charAt(0) === '_' && typeof this[fn] === 'function') { - this[fn] = this[fn].bind(this); - } - } - } - - AutoScroll.prototype = { - dragStarted: function dragStarted(_ref) { - var originalEvent = _ref.originalEvent; - - if (this.sortable.nativeDraggable) { - on(document, 'dragover', this._handleAutoScroll); - } else { - if (this.options.supportPointer) { - on(document, 'pointermove', this._handleFallbackAutoScroll); - } else if (originalEvent.touches) { - on(document, 'touchmove', this._handleFallbackAutoScroll); - } else { - on(document, 'mousemove', this._handleFallbackAutoScroll); - } - } - }, - dragOverCompleted: function dragOverCompleted(_ref2) { - var originalEvent = _ref2.originalEvent; - - // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached) - if (!this.options.dragOverBubble && !originalEvent.rootEl) { - this._handleAutoScroll(originalEvent); - } - }, - drop: function drop() { - if (this.sortable.nativeDraggable) { - off(document, 'dragover', this._handleAutoScroll); - } else { - off(document, 'pointermove', this._handleFallbackAutoScroll); - off(document, 'touchmove', this._handleFallbackAutoScroll); - off(document, 'mousemove', this._handleFallbackAutoScroll); - } - - clearPointerElemChangedInterval(); - clearAutoScrolls(); - cancelThrottle(); - }, - nulling: function nulling() { - touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null; - autoScrolls.length = 0; - }, - _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) { - this._handleAutoScroll(evt, true); - }, - _handleAutoScroll: function _handleAutoScroll(evt, fallback) { - var _this = this; - - var x = (evt.touches ? evt.touches[0] : evt).clientX, - y = (evt.touches ? evt.touches[0] : evt).clientY, - elem = document.elementFromPoint(x, y); - touchEvt$1 = evt; // IE does not seem to have native autoscroll, - // Edge's autoscroll seems too conditional, - // MACOS Safari does not have autoscroll, - // Firefox and Chrome are good - - if (fallback || Edge || IE11OrLess || Safari) { - autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change - - var ogElemScroller = getParentAutoScrollElement(elem, true); - - if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) { - pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour - - pointerElemChangedInterval = setInterval(function () { - var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true); - - if (newElem !== ogElemScroller) { - ogElemScroller = newElem; - clearAutoScrolls(); - } - - autoScroll(evt, _this.options, newElem, fallback); - }, 10); - lastAutoScrollX = x; - lastAutoScrollY = y; - } - } else { - // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll - if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) { - clearAutoScrolls(); - return; - } - - autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false); - } - } - }; - return _extends(AutoScroll, { - pluginName: 'scroll', - initializeByDefault: true - }); -} - -function clearAutoScrolls() { - autoScrolls.forEach(function (autoScroll) { - clearInterval(autoScroll.pid); - }); - autoScrolls = []; -} - -function clearPointerElemChangedInterval() { - clearInterval(pointerElemChangedInterval); -} - -var autoScroll = throttle(function (evt, options, rootEl, isFallback) { - // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521 - if (!options.scroll) return; - var x = (evt.touches ? evt.touches[0] : evt).clientX, - y = (evt.touches ? evt.touches[0] : evt).clientY, - sens = options.scrollSensitivity, - speed = options.scrollSpeed, - winScroller = getWindowScrollingElement(); - var scrollThisInstance = false, - scrollCustomFn; // New scroll root, set scrollEl - - if (scrollRootEl !== rootEl) { - scrollRootEl = rootEl; - clearAutoScrolls(); - scrollEl = options.scroll; - scrollCustomFn = options.scrollFn; - - if (scrollEl === true) { - scrollEl = getParentAutoScrollElement(rootEl, true); - } - } - - var layersOut = 0; - var currentParent = scrollEl; - - do { - var el = currentParent, - rect = getRect(el), - top = rect.top, - bottom = rect.bottom, - left = rect.left, - right = rect.right, - width = rect.width, - height = rect.height, - canScrollX = void 0, - canScrollY = void 0, - scrollWidth = el.scrollWidth, - scrollHeight = el.scrollHeight, - elCSS = css(el), - scrollPosX = el.scrollLeft, - scrollPosY = el.scrollTop; - - if (el === winScroller) { - canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible'); - canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible'); - } else { - canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll'); - canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll'); - } - - var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX); - var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY); - - if (!autoScrolls[layersOut]) { - for (var i = 0; i <= layersOut; i++) { - if (!autoScrolls[i]) { - autoScrolls[i] = {}; - } - } - } - - if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) { - autoScrolls[layersOut].el = el; - autoScrolls[layersOut].vx = vx; - autoScrolls[layersOut].vy = vy; - clearInterval(autoScrolls[layersOut].pid); - - if (vx != 0 || vy != 0) { - scrollThisInstance = true; - /* jshint loopfunc:true */ - - autoScrolls[layersOut].pid = setInterval(function () { - // emulate drag over during autoscroll (fallback), emulating native DnD behaviour - if (isFallback && this.layer === 0) { - Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely - - } - - var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0; - var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0; - - if (typeof scrollCustomFn === 'function') { - if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') { - return; - } - } - - scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY); - }.bind({ - layer: layersOut - }), 24); - } - } - - layersOut++; - } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false))); - - scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not -}, 30); - -var drop = function drop(_ref) { - var originalEvent = _ref.originalEvent, - putSortable = _ref.putSortable, - dragEl = _ref.dragEl, - activeSortable = _ref.activeSortable, - dispatchSortableEvent = _ref.dispatchSortableEvent, - hideGhostForTarget = _ref.hideGhostForTarget, - unhideGhostForTarget = _ref.unhideGhostForTarget; - if (!originalEvent) return; - var toSortable = putSortable || activeSortable; - hideGhostForTarget(); - var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent; - var target = document.elementFromPoint(touch.clientX, touch.clientY); - unhideGhostForTarget(); - - if (toSortable && !toSortable.el.contains(target)) { - dispatchSortableEvent('spill'); - this.onSpill({ - dragEl: dragEl, - putSortable: putSortable - }); - } -}; - -function Revert() {} - -Revert.prototype = { - startIndex: null, - dragStart: function dragStart(_ref2) { - var oldDraggableIndex = _ref2.oldDraggableIndex; - this.startIndex = oldDraggableIndex; - }, - onSpill: function onSpill(_ref3) { - var dragEl = _ref3.dragEl, - putSortable = _ref3.putSortable; - this.sortable.captureAnimationState(); - - if (putSortable) { - putSortable.captureAnimationState(); - } - - var nextSibling = getChild(this.sortable.el, this.startIndex, this.options); - - if (nextSibling) { - this.sortable.el.insertBefore(dragEl, nextSibling); - } else { - this.sortable.el.appendChild(dragEl); - } - - this.sortable.animateAll(); - - if (putSortable) { - putSortable.animateAll(); - } - }, - drop: drop -}; - -_extends(Revert, { - pluginName: 'revertOnSpill' -}); - -function Remove() {} - -Remove.prototype = { - onSpill: function onSpill(_ref4) { - var dragEl = _ref4.dragEl, - putSortable = _ref4.putSortable; - var parentSortable = putSortable || this.sortable; - parentSortable.captureAnimationState(); - dragEl.parentNode && dragEl.parentNode.removeChild(dragEl); - parentSortable.animateAll(); - }, - drop: drop -}; - -_extends(Remove, { - pluginName: 'removeOnSpill' -}); - -var OnSpill = [Remove, Revert]; - -var lastSwapEl; - -function SwapPlugin() { - function Swap() { - this.defaults = { - swapClass: 'sortable-swap-highlight' - }; - } - - Swap.prototype = { - dragStart: function dragStart(_ref) { - var dragEl = _ref.dragEl; - lastSwapEl = dragEl; - }, - dragOverValid: function dragOverValid(_ref2) { - var completed = _ref2.completed, - target = _ref2.target, - onMove = _ref2.onMove, - activeSortable = _ref2.activeSortable, - changed = _ref2.changed, - cancel = _ref2.cancel; - if (!activeSortable.options.swap) return; - var el = this.sortable.el, - options = this.options; - - if (target && target !== el) { - var prevSwapEl = lastSwapEl; - - if (onMove(target) !== false) { - toggleClass(target, options.swapClass, true); - lastSwapEl = target; - } else { - lastSwapEl = null; - } - - if (prevSwapEl && prevSwapEl !== lastSwapEl) { - toggleClass(prevSwapEl, options.swapClass, false); - } - } - - changed(); - completed(true); - cancel(); - }, - drop: function drop(_ref3) { - var activeSortable = _ref3.activeSortable, - putSortable = _ref3.putSortable, - dragEl = _ref3.dragEl; - var toSortable = putSortable || this.sortable; - var options = this.options; - lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false); - - if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) { - if (dragEl !== lastSwapEl) { - toSortable.captureAnimationState(); - if (toSortable !== activeSortable) activeSortable.captureAnimationState(); - swapNodes(dragEl, lastSwapEl); - toSortable.animateAll(); - if (toSortable !== activeSortable) activeSortable.animateAll(); - } - } - }, - nulling: function nulling() { - lastSwapEl = null; - } - }; - return _extends(Swap, { - pluginName: 'swap', - eventProperties: function eventProperties() { - return { - swapItem: lastSwapEl - }; - } - }); -} - -function swapNodes(n1, n2) { - var p1 = n1.parentNode, - p2 = n2.parentNode, - i1, - i2; - if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return; - i1 = index(n1); - i2 = index(n2); - - if (p1.isEqualNode(p2) && i1 < i2) { - i2++; - } - - p1.insertBefore(n2, p1.children[i1]); - p2.insertBefore(n1, p2.children[i2]); -} - -var multiDragElements = [], - multiDragClones = [], - lastMultiDragSelect, - // for selection with modifier key down (SHIFT) -multiDragSortable, - initialFolding = false, - // Initial multi-drag fold when drag started -folding = false, - // Folding any other time -dragStarted = false, - dragEl$1, - clonesFromRect, - clonesHidden; - -function MultiDragPlugin() { - function MultiDrag(sortable) { - // Bind all private methods - for (var fn in this) { - if (fn.charAt(0) === '_' && typeof this[fn] === 'function') { - this[fn] = this[fn].bind(this); - } - } - - if (sortable.options.supportPointer) { - on(document, 'pointerup', this._deselectMultiDrag); - } else { - on(document, 'mouseup', this._deselectMultiDrag); - on(document, 'touchend', this._deselectMultiDrag); - } - - on(document, 'keydown', this._checkKeyDown); - on(document, 'keyup', this._checkKeyUp); - this.defaults = { - selectedClass: 'sortable-selected', - multiDragKey: null, - setData: function setData(dataTransfer, dragEl) { - var data = ''; - - if (multiDragElements.length && multiDragSortable === sortable) { - multiDragElements.forEach(function (multiDragElement, i) { - data += (!i ? '' : ', ') + multiDragElement.textContent; - }); - } else { - data = dragEl.textContent; - } - - dataTransfer.setData('Text', data); - } - }; - } - - MultiDrag.prototype = { - multiDragKeyDown: false, - isMultiDrag: false, - delayStartGlobal: function delayStartGlobal(_ref) { - var dragged = _ref.dragEl; - dragEl$1 = dragged; - }, - delayEnded: function delayEnded() { - this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1); - }, - setupClone: function setupClone(_ref2) { - var sortable = _ref2.sortable, - cancel = _ref2.cancel; - if (!this.isMultiDrag) return; - - for (var i = 0; i < multiDragElements.length; i++) { - multiDragClones.push(clone(multiDragElements[i])); - multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex; - multiDragClones[i].draggable = false; - multiDragClones[i].style['will-change'] = ''; - toggleClass(multiDragClones[i], this.options.selectedClass, false); - multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false); - } - - sortable._hideClone(); - - cancel(); - }, - clone: function clone(_ref3) { - var sortable = _ref3.sortable, - rootEl = _ref3.rootEl, - dispatchSortableEvent = _ref3.dispatchSortableEvent, - cancel = _ref3.cancel; - if (!this.isMultiDrag) return; - - if (!this.options.removeCloneOnHide) { - if (multiDragElements.length && multiDragSortable === sortable) { - insertMultiDragClones(true, rootEl); - dispatchSortableEvent('clone'); - cancel(); - } - } - }, - showClone: function showClone(_ref4) { - var cloneNowShown = _ref4.cloneNowShown, - rootEl = _ref4.rootEl, - cancel = _ref4.cancel; - if (!this.isMultiDrag) return; - insertMultiDragClones(false, rootEl); - multiDragClones.forEach(function (clone) { - css(clone, 'display', ''); - }); - cloneNowShown(); - clonesHidden = false; - cancel(); - }, - hideClone: function hideClone(_ref5) { - var _this = this; - - var sortable = _ref5.sortable, - cloneNowHidden = _ref5.cloneNowHidden, - cancel = _ref5.cancel; - if (!this.isMultiDrag) return; - multiDragClones.forEach(function (clone) { - css(clone, 'display', 'none'); - - if (_this.options.removeCloneOnHide && clone.parentNode) { - clone.parentNode.removeChild(clone); - } - }); - cloneNowHidden(); - clonesHidden = true; - cancel(); - }, - dragStartGlobal: function dragStartGlobal(_ref6) { - var sortable = _ref6.sortable; - - if (!this.isMultiDrag && multiDragSortable) { - multiDragSortable.multiDrag._deselectMultiDrag(); - } - - multiDragElements.forEach(function (multiDragElement) { - multiDragElement.sortableIndex = index(multiDragElement); - }); // Sort multi-drag elements - - multiDragElements = multiDragElements.sort(function (a, b) { - return a.sortableIndex - b.sortableIndex; - }); - dragStarted = true; - }, - dragStarted: function dragStarted(_ref7) { - var _this2 = this; - - var sortable = _ref7.sortable; - if (!this.isMultiDrag) return; - - if (this.options.sort) { - // Capture rects, - // hide multi drag elements (by positioning them absolute), - // set multi drag elements rects to dragRect, - // show multi drag elements, - // animate to rects, - // unset rects & remove from DOM - sortable.captureAnimationState(); - - if (this.options.animation) { - multiDragElements.forEach(function (multiDragElement) { - if (multiDragElement === dragEl$1) return; - css(multiDragElement, 'position', 'absolute'); - }); - var dragRect = getRect(dragEl$1, false, true, true); - multiDragElements.forEach(function (multiDragElement) { - if (multiDragElement === dragEl$1) return; - setRect(multiDragElement, dragRect); - }); - folding = true; - initialFolding = true; - } - } - - sortable.animateAll(function () { - folding = false; - initialFolding = false; - - if (_this2.options.animation) { - multiDragElements.forEach(function (multiDragElement) { - unsetRect(multiDragElement); - }); - } // Remove all auxiliary multidrag items from el, if sorting enabled - - - if (_this2.options.sort) { - removeMultiDragElements(); - } - }); - }, - dragOver: function dragOver(_ref8) { - var target = _ref8.target, - completed = _ref8.completed, - cancel = _ref8.cancel; - - if (folding && ~multiDragElements.indexOf(target)) { - completed(false); - cancel(); - } - }, - revert: function revert(_ref9) { - var fromSortable = _ref9.fromSortable, - rootEl = _ref9.rootEl, - sortable = _ref9.sortable, - dragRect = _ref9.dragRect; - - if (multiDragElements.length > 1) { - // Setup unfold animation - multiDragElements.forEach(function (multiDragElement) { - sortable.addAnimationState({ - target: multiDragElement, - rect: folding ? getRect(multiDragElement) : dragRect - }); - unsetRect(multiDragElement); - multiDragElement.fromRect = dragRect; - fromSortable.removeAnimationState(multiDragElement); - }); - folding = false; - insertMultiDragElements(!this.options.removeCloneOnHide, rootEl); - } - }, - dragOverCompleted: function dragOverCompleted(_ref10) { - var sortable = _ref10.sortable, - isOwner = _ref10.isOwner, - insertion = _ref10.insertion, - activeSortable = _ref10.activeSortable, - parentEl = _ref10.parentEl, - putSortable = _ref10.putSortable; - var options = this.options; - - if (insertion) { - // Clones must be hidden before folding animation to capture dragRectAbsolute properly - if (isOwner) { - activeSortable._hideClone(); - } - - initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location - - if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) { - // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible - var dragRectAbsolute = getRect(dragEl$1, false, true, true); - multiDragElements.forEach(function (multiDragElement) { - if (multiDragElement === dragEl$1) return; - setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted - // while folding, and so that we can capture them again because old sortable will no longer be fromSortable - - parentEl.appendChild(multiDragElement); - }); - folding = true; - } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out - - - if (!isOwner) { - // Only remove if not folding (folding will remove them anyways) - if (!folding) { - removeMultiDragElements(); - } - - if (multiDragElements.length > 1) { - var clonesHiddenBefore = clonesHidden; - - activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden - - - if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) { - multiDragClones.forEach(function (clone) { - activeSortable.addAnimationState({ - target: clone, - rect: clonesFromRect - }); - clone.fromRect = clonesFromRect; - clone.thisAnimationDuration = null; - }); - } - } else { - activeSortable._showClone(sortable); - } - } - } - }, - dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) { - var dragRect = _ref11.dragRect, - isOwner = _ref11.isOwner, - activeSortable = _ref11.activeSortable; - multiDragElements.forEach(function (multiDragElement) { - multiDragElement.thisAnimationDuration = null; - }); - - if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) { - clonesFromRect = _extends({}, dragRect); - var dragMatrix = matrix(dragEl$1, true); - clonesFromRect.top -= dragMatrix.f; - clonesFromRect.left -= dragMatrix.e; - } - }, - dragOverAnimationComplete: function dragOverAnimationComplete() { - if (folding) { - folding = false; - removeMultiDragElements(); - } - }, - drop: function drop(_ref12) { - var evt = _ref12.originalEvent, - rootEl = _ref12.rootEl, - parentEl = _ref12.parentEl, - sortable = _ref12.sortable, - dispatchSortableEvent = _ref12.dispatchSortableEvent, - oldIndex = _ref12.oldIndex, - putSortable = _ref12.putSortable; - var toSortable = putSortable || this.sortable; - if (!evt) return; - var options = this.options, - children = parentEl.children; // Multi-drag selection - - if (!dragStarted) { - if (options.multiDragKey && !this.multiDragKeyDown) { - this._deselectMultiDrag(); - } - - toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1)); - - if (!~multiDragElements.indexOf(dragEl$1)) { - multiDragElements.push(dragEl$1); - dispatchEvent({ - sortable: sortable, - rootEl: rootEl, - name: 'select', - targetEl: dragEl$1, - originalEvt: evt - }); // Modifier activated, select from last to dragEl - - if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) { - var lastIndex = index(lastMultiDragSelect), - currentIndex = index(dragEl$1); - - if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) { - // Must include lastMultiDragSelect (select it), in case modified selection from no selection - // (but previous selection existed) - var n, i; - - if (currentIndex > lastIndex) { - i = lastIndex; - n = currentIndex; - } else { - i = currentIndex; - n = lastIndex + 1; - } - - for (; i < n; i++) { - if (~multiDragElements.indexOf(children[i])) continue; - toggleClass(children[i], options.selectedClass, true); - multiDragElements.push(children[i]); - dispatchEvent({ - sortable: sortable, - rootEl: rootEl, - name: 'select', - targetEl: children[i], - originalEvt: evt - }); - } - } - } else { - lastMultiDragSelect = dragEl$1; - } - - multiDragSortable = toSortable; - } else { - multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1); - lastMultiDragSelect = null; - dispatchEvent({ - sortable: sortable, - rootEl: rootEl, - name: 'deselect', - targetEl: dragEl$1, - originalEvt: evt - }); - } - } // Multi-drag drop - - - if (dragStarted && this.isMultiDrag) { - // Do not "unfold" after around dragEl if reverted - if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) { - var dragRect = getRect(dragEl$1), - multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')'); - if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null; - toSortable.captureAnimationState(); - - if (!initialFolding) { - if (options.animation) { - dragEl$1.fromRect = dragRect; - multiDragElements.forEach(function (multiDragElement) { - multiDragElement.thisAnimationDuration = null; - - if (multiDragElement !== dragEl$1) { - var rect = folding ? getRect(multiDragElement) : dragRect; - multiDragElement.fromRect = rect; // Prepare unfold animation - - toSortable.addAnimationState({ - target: multiDragElement, - rect: rect - }); - } - }); - } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert - // properly they must all be removed - - - removeMultiDragElements(); - multiDragElements.forEach(function (multiDragElement) { - if (children[multiDragIndex]) { - parentEl.insertBefore(multiDragElement, children[multiDragIndex]); - } else { - parentEl.appendChild(multiDragElement); - } - - multiDragIndex++; - }); // If initial folding is done, the elements may have changed position because they are now - // unfolding around dragEl, even though dragEl may not have his index changed, so update event - // must be fired here as Sortable will not. - - if (oldIndex === index(dragEl$1)) { - var update = false; - multiDragElements.forEach(function (multiDragElement) { - if (multiDragElement.sortableIndex !== index(multiDragElement)) { - update = true; - return; - } - }); - - if (update) { - dispatchSortableEvent('update'); - } - } - } // Must be done after capturing individual rects (scroll bar) - - - multiDragElements.forEach(function (multiDragElement) { - unsetRect(multiDragElement); - }); - toSortable.animateAll(); - } - - multiDragSortable = toSortable; - } // Remove clones if necessary - - - if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') { - multiDragClones.forEach(function (clone) { - clone.parentNode && clone.parentNode.removeChild(clone); - }); - } - }, - nullingGlobal: function nullingGlobal() { - this.isMultiDrag = dragStarted = false; - multiDragClones.length = 0; - }, - destroyGlobal: function destroyGlobal() { - this._deselectMultiDrag(); - - off(document, 'pointerup', this._deselectMultiDrag); - off(document, 'mouseup', this._deselectMultiDrag); - off(document, 'touchend', this._deselectMultiDrag); - off(document, 'keydown', this._checkKeyDown); - off(document, 'keyup', this._checkKeyUp); - }, - _deselectMultiDrag: function _deselectMultiDrag(evt) { - if (dragStarted) return; // Only deselect if selection is in this sortable - - if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable - - if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click - - if (evt && evt.button !== 0) return; - - while (multiDragElements.length) { - var el = multiDragElements[0]; - toggleClass(el, this.options.selectedClass, false); - multiDragElements.shift(); - dispatchEvent({ - sortable: this.sortable, - rootEl: this.sortable.el, - name: 'deselect', - targetEl: el, - originalEvt: evt - }); - } - }, - _checkKeyDown: function _checkKeyDown(evt) { - if (evt.key === this.options.multiDragKey) { - this.multiDragKeyDown = true; - } - }, - _checkKeyUp: function _checkKeyUp(evt) { - if (evt.key === this.options.multiDragKey) { - this.multiDragKeyDown = false; - } - } - }; - return _extends(MultiDrag, { - // Static methods & properties - pluginName: 'multiDrag', - utils: { - /** - * Selects the provided multi-drag item - * @param {HTMLElement} el The element to be selected - */ - select: function select(el) { - var sortable = el.parentNode[expando]; - if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return; - - if (multiDragSortable && multiDragSortable !== sortable) { - multiDragSortable.multiDrag._deselectMultiDrag(); - - multiDragSortable = sortable; - } - - toggleClass(el, sortable.options.selectedClass, true); - multiDragElements.push(el); - }, - - /** - * Deselects the provided multi-drag item - * @param {HTMLElement} el The element to be deselected - */ - deselect: function deselect(el) { - var sortable = el.parentNode[expando], - index = multiDragElements.indexOf(el); - if (!sortable || !sortable.options.multiDrag || !~index) return; - toggleClass(el, sortable.options.selectedClass, false); - multiDragElements.splice(index, 1); - } - }, - eventProperties: function eventProperties() { - var _this3 = this; - - var oldIndicies = [], - newIndicies = []; - multiDragElements.forEach(function (multiDragElement) { - oldIndicies.push({ - multiDragElement: multiDragElement, - index: multiDragElement.sortableIndex - }); // multiDragElements will already be sorted if folding - - var newIndex; - - if (folding && multiDragElement !== dragEl$1) { - newIndex = -1; - } else if (folding) { - newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')'); - } else { - newIndex = index(multiDragElement); - } - - newIndicies.push({ - multiDragElement: multiDragElement, - index: newIndex - }); - }); - return { - items: _toConsumableArray(multiDragElements), - clones: [].concat(multiDragClones), - oldIndicies: oldIndicies, - newIndicies: newIndicies - }; - }, - optionListeners: { - multiDragKey: function multiDragKey(key) { - key = key.toLowerCase(); - - if (key === 'ctrl') { - key = 'Control'; - } else if (key.length > 1) { - key = key.charAt(0).toUpperCase() + key.substr(1); - } - - return key; - } - } - }); -} - -function insertMultiDragElements(clonesInserted, rootEl) { - multiDragElements.forEach(function (multiDragElement, i) { - var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)]; - - if (target) { - rootEl.insertBefore(multiDragElement, target); - } else { - rootEl.appendChild(multiDragElement); - } - }); -} -/** - * Insert multi-drag clones - * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted - * @param {HTMLElement} rootEl - */ - - -function insertMultiDragClones(elementsInserted, rootEl) { - multiDragClones.forEach(function (clone, i) { - var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)]; - - if (target) { - rootEl.insertBefore(clone, target); - } else { - rootEl.appendChild(clone); - } - }); -} - -function removeMultiDragElements() { - multiDragElements.forEach(function (multiDragElement) { - if (multiDragElement === dragEl$1) return; - multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement); - }); -} - -// export default Sortable; -// export { AutoScrollPlugin as AutoScroll, MultiDragPlugin as MultiDrag, OnSpill, Sortable, SwapPlugin as Swap }; \ No newline at end of file diff --git a/OLDdata/site/icons/discord.png b/OLDdata/site/icons/discord.png deleted file mode 100644 index f25fab6f..00000000 Binary files a/OLDdata/site/icons/discord.png and /dev/null differ diff --git a/OLDdata/site/icons/izzetright.png b/OLDdata/site/icons/izzetright.png deleted file mode 100644 index b533b395..00000000 Binary files a/OLDdata/site/icons/izzetright.png and /dev/null differ diff --git a/OLDdata/site/icons/massdrop.png b/OLDdata/site/icons/massdrop.png deleted file mode 100644 index 00920675..00000000 Binary files a/OLDdata/site/icons/massdrop.png and /dev/null differ diff --git a/OLDdata/site/icons/patreon.png b/OLDdata/site/icons/patreon.png deleted file mode 100644 index 36c0fca7..00000000 Binary files a/OLDdata/site/icons/patreon.png and /dev/null differ diff --git a/OLDdata/site/icons/paypal-512.png b/OLDdata/site/icons/paypal-512.png deleted file mode 100644 index 467100ac..00000000 Binary files a/OLDdata/site/icons/paypal-512.png and /dev/null differ diff --git a/OLDdata/site/icons/paypal.png b/OLDdata/site/icons/paypal.png deleted file mode 100644 index 0f36713d..00000000 Binary files a/OLDdata/site/icons/paypal.png and /dev/null differ diff --git a/OLDdata/site/icons/pucatrade.png b/OLDdata/site/icons/pucatrade.png deleted file mode 100644 index a55f8079..00000000 Binary files a/OLDdata/site/icons/pucatrade.png and /dev/null differ diff --git a/OLDdata/site/icons/reddit.png b/OLDdata/site/icons/reddit.png deleted file mode 100644 index f7d1d79a..00000000 Binary files a/OLDdata/site/icons/reddit.png and /dev/null differ diff --git a/OLDdata/site/icons/twitter.png b/OLDdata/site/icons/twitter.png deleted file mode 100644 index 885ba87e..00000000 Binary files a/OLDdata/site/icons/twitter.png and /dev/null differ diff --git a/OLDdata/site/images/layerBackground.png b/OLDdata/site/images/layerBackground.png deleted file mode 100644 index fb1a1cdc..00000000 Binary files a/OLDdata/site/images/layerBackground.png and /dev/null differ diff --git a/OLDdata/site/images/lowpoly.png b/OLDdata/site/images/lowpoly.png deleted file mode 100644 index 2d6e1d17..00000000 Binary files a/OLDdata/site/images/lowpoly.png and /dev/null differ diff --git a/OLDdata/site/images/lowpoly.xcf b/OLDdata/site/images/lowpoly.xcf deleted file mode 100644 index 4ed417bb..00000000 Binary files a/OLDdata/site/images/lowpoly.xcf and /dev/null differ diff --git a/OLDdata/site/images/samples/1.png b/OLDdata/site/images/samples/1.png deleted file mode 100644 index 5b0d76a2..00000000 Binary files a/OLDdata/site/images/samples/1.png and /dev/null differ diff --git a/OLDdata/site/images/samples/10.png b/OLDdata/site/images/samples/10.png deleted file mode 100644 index f7a86740..00000000 Binary files a/OLDdata/site/images/samples/10.png and /dev/null differ diff --git a/OLDdata/site/images/samples/11.png b/OLDdata/site/images/samples/11.png deleted file mode 100644 index be2a3c51..00000000 Binary files a/OLDdata/site/images/samples/11.png and /dev/null differ diff --git a/OLDdata/site/images/samples/12.png b/OLDdata/site/images/samples/12.png deleted file mode 100644 index c020cc78..00000000 Binary files a/OLDdata/site/images/samples/12.png and /dev/null differ diff --git a/OLDdata/site/images/samples/2.png b/OLDdata/site/images/samples/2.png deleted file mode 100644 index 83d569c0..00000000 Binary files a/OLDdata/site/images/samples/2.png and /dev/null differ diff --git a/OLDdata/site/images/samples/3.png b/OLDdata/site/images/samples/3.png deleted file mode 100644 index c74b22ba..00000000 Binary files a/OLDdata/site/images/samples/3.png and /dev/null differ diff --git a/OLDdata/site/images/samples/4.png b/OLDdata/site/images/samples/4.png deleted file mode 100644 index fb277b30..00000000 Binary files a/OLDdata/site/images/samples/4.png and /dev/null differ diff --git a/OLDdata/site/images/samples/5.png b/OLDdata/site/images/samples/5.png deleted file mode 100644 index 33f3517f..00000000 Binary files a/OLDdata/site/images/samples/5.png and /dev/null differ diff --git a/OLDdata/site/images/samples/6.png b/OLDdata/site/images/samples/6.png deleted file mode 100644 index 7b3064f7..00000000 Binary files a/OLDdata/site/images/samples/6.png and /dev/null differ diff --git a/OLDdata/site/images/samples/7.png b/OLDdata/site/images/samples/7.png deleted file mode 100644 index c6f97cbc..00000000 Binary files a/OLDdata/site/images/samples/7.png and /dev/null differ diff --git a/OLDdata/site/images/samples/8.png b/OLDdata/site/images/samples/8.png deleted file mode 100644 index e08337ee..00000000 Binary files a/OLDdata/site/images/samples/8.png and /dev/null differ diff --git a/OLDdata/site/images/samples/9.png b/OLDdata/site/images/samples/9.png deleted file mode 100644 index 974279c0..00000000 Binary files a/OLDdata/site/images/samples/9.png and /dev/null differ diff --git a/OLDdata/site/other/askScryfall/askScryfall.js b/OLDdata/site/other/askScryfall/askScryfall.js deleted file mode 100644 index e82b8883..00000000 --- a/OLDdata/site/other/askScryfall/askScryfall.js +++ /dev/null @@ -1,22 +0,0 @@ -var fullAbilityList = new Array() - -function loadAbilities() { - var xhttp = new XMLHttpRequest(); - xhttp.onreadystatechange = function() { - if (this.readyState == 4) { - fullAbilityList = xhttp.responseText.split("$$$") - for (var i = 0; i < 3; i ++) { - fullAbilityList[i] = fullAbilityList[i].split(";") - } - } - } - xhttp.open("GET", "data/site/other/askScryfall/planeswalkerAbilities.txt", true); - xhttp.send(); -} - -function randomAbility(index) { - possibleAbilities = fullAbilityList[index] - document.getElementById("askScryfallResult").innerHTML = possibleAbilities[Math.floor(Math.random() * (possibleAbilities.length - 1))].replace(/\\"/g, '"') -} - -loadAbilities() diff --git a/OLDdata/site/other/askScryfall/askScryfallAbilityListGenerator.html b/OLDdata/site/other/askScryfall/askScryfallAbilityListGenerator.html deleted file mode 100644 index ae80bc75..00000000 --- a/OLDdata/site/other/askScryfall/askScryfallAbilityListGenerator.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - Ask Scryfall - Ability List Generator - - - - - - - - diff --git a/OLDdata/site/other/askScryfall/minus.png b/OLDdata/site/other/askScryfall/minus.png deleted file mode 100644 index dc106d44..00000000 Binary files a/OLDdata/site/other/askScryfall/minus.png and /dev/null differ diff --git a/OLDdata/site/other/askScryfall/planeswalkerAbilities.txt b/OLDdata/site/other/askScryfall/planeswalkerAbilities.txt deleted file mode 100644 index eb7926cd..00000000 --- a/OLDdata/site/other/askScryfall/planeswalkerAbilities.txt +++ /dev/null @@ -1 +0,0 @@ -Up to X target Beebles can't be blocked this turn, where X is the number of cards in your hand.;Draw a card. Each player puts the top two cards of their library into their graveyard.;Put a +1/+1 counter on each of up to two target creatures.;Look at the top four cards of your library. You may reveal an enchantment card from among them and put that card into your hand. Put the rest on the bottom of your library in a random order.;Create a 2/3 blue and black Nightmare creature token with \"Whenever this creature attacks or blocks, each opponent exiles the top two cards of their library.\";Put two +1/+1 counters on up to one target creature you control.;Up to one target creature gets +3/+0 and gains first strike until end of turn.;Draw a card, then discard a card.;Target creature gets +2/+0 and gains first strike and trample until end of turn.;Create a Food token. (It's an artifact with \"{2}, {T}, Sacrifice this artifact: You gain 3 life.\");Target artifact or creature loses all abilities and becomes a green Elk creature with base power and toughness 3/3.;Until your next turn, whenever a creature deals combat damage to Urza, Academy Headmaster, destroy that creature.;Tap target permanent, then untap another target permanent.;Create a 3/3 green Beast creature token.;You draw a card and you lose 1 life.;Put three +1/+1 counters on up to one target creature.;Urza, Academy Headmaster deals 2 damage to any target.;Up to one target creature gets +2/+0 until end of turn.;Until your next turn, up to one target creature gets -5/-0.;You gain 2 life. Put two +1/+1 counters on up to one target creature.;Distribute two +1/+1 counters among up to two target creatures. They gain trample until end of turn.;Elementals you control get +2/+0 until end of turn.;Each opponent gets an emblem with \"At the beginning of your upkeep, this emblem deals 1 damage to you.\";Target creature you control gains deathtouch and lifelink until end of turn. If it's a Vampire, put a +1/+1 counter on it.;You may sacrifice a Vampire. When you do, Urza, Academy Headmaster deals 3 damage to any target and you gain 3 life.;Until your next turn, up to one target creature gets -2/-0 and loses flying.;You gain life equal to the number of creatures you control plus the number of planeswalkers you control.;Return up to one target land card from your graveyard to your hand.;Creatures you control with flying get +1/+1 until end of turn.;Urza, Academy Headmaster deals X damage to each opponent, where X is the number of artifacts you control. You gain X life.;Draw a card.;Until end of turn, Urza, Academy Headmaster becomes a 5/5 white Soldier creature that's still a planeswalker. Prevent all damage that would be dealt to him this turn. (He can't attack if he was cast this turn.);Until your next turn, you may cast sorcery spells as though they had flash.;Choose a nonland card name, then reveal the top four cards of your library. Put all cards with the chosen name from among them into your hand and the rest into your graveyard.;Urza, Academy Headmaster deals 1 damage to target player or planeswalker.;Scry 1.;You draw a card. Each opponent exiles a card from their hand or a permanent they control.;Add {R} or {G}. Creature spells you cast this turn can't be countered.;You gain 3 life.;Until your next turn, up to one target creature gains vigilance and reach.;Put three +1/+1 counters on up to one target noncreature land you control. Untap it. It becomes a 0/0 Elemental creature with vigilance and haste that's still a land.;Add one mana of any color.\";Until end of turn, each planeswalker you control becomes a 4/4 red Dragon creature and gains flying.;Exile the top card of your library. You may play it this turn.;Create a 2/2 black Zombie creature token.;Target player puts the top two cards of their library into their graveyard. Draw a card.;Up to one other target creature you control gains your choice of vigilance, lifelink, or indestructible until end of turn.;Exile the top card of your library face down and look at it. Create a 2/2 colorless Spirit creature token. When that token leaves the battlefield, put the exiled card into your hand.;Until your next turn, up to one target noncreature artifact becomes an artifact creature with power and toughness each equal to its converted mana cost.;Creatures you control get +1/+1 and gain haste until end of turn.;You gain 2 life and draw a card.;Exile up to two target cards from a single graveyard. You gain 2 life if at least one creature card was exiled this way.;Until end of turn, whenever a creature you control deals combat damage to a player, put a loyalty counter on Urza, Academy Headmaster.;Add {R} or {G}. If that mana is spent on a creature spell, it gains riot. (It enters the battlefield with your choice of a +1/+1 counter or haste.);Each player discards a card.;Target player exiles a card from their hand.;Put a +1/+1 counter on up to one target creature. That creature gains menace until end of turn.;Draw a card.;You may sacrifice another permanent. If you do, you gain 1 life and draw a card.;Look at the top two cards of your library. Put one of them into your hand and the other into your graveyard.;Create a 1/1 colorless Servo artifact creature token.;The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it.;Discard a card, then draw a card. If a land card is discarded this way, draw an additional card.;Untap each enchanted permanent you control.;Draw a card, then put a card from your hand on top of your library.;Put two +1/+1 counters on up to one target creature.;Urza, Academy Headmaster deals 1 damage to each opponent and each creature your opponents control.;Target player loses 2 life.;Draw a card.;You gain 1 life for each creature you control.;Draw two cards.;Look at the top four cards of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.;You may discard a card. If you do, draw a card.;Add two mana in any combination of colors. Spend this mana only to cast Dragon spells.;Put the top three cards of your library into your graveyard. If at least one of them is a Zombie card, each opponent loses 2 life and you gain 2 life.;Create a 1/1 colorless Thopter artifact creature token with flying.;Put a +1/+1 counter on each of up to two target creatures.;Target creature gets +2/+2 until end of turn.;Target creature can't be blocked this turn.;Discard up to two cards, then draw that many cards.;During target player's next turn, each creature that player controls attacks if able.;Until your next turn, up to two target creatures each have base power and toughness 0/3 and lose all abilities.;Add {R}{R}. Urza, Academy Headmaster deals 2 damage to target player.;Untap up to one target artifact or creature.;Draw a card. At the beginning of the next end step, untap up to two lands.;Add {R}{R}{R}. Spend this mana only to cast instant or sorcery spells.;Discard up to three cards, then draw that many cards.;Reveal the top two cards of your library. An opponent chooses one of them. Put that card into your hand and exile the other with a silver counter on it.;Look at the top card of target player's library. You may put that card on the bottom of that player's library.;Urza, Academy Headmaster deals 1 damage to target opponent or planeswalker and each creature that player or that planeswalker's controller controls.;Creatures you control get +1/+0 until end of turn.;Put a loyalty counter on Urza, Academy Headmaster for each creature you control.;Each opponent discards a card and loses 2 life.;Head to AskUrza.com and click +1.;Put two +1/+1 counters on up to one target Dinosaur you control.;Draw a card.;Untap all creatures you control.;Create a 2/2 black Pirate creature token with menace.;You gain life equal to the greatest power among creatures you control.;Whenever one or more creatures you control deal combat damage to a player this turn, draw a card, then discard a card.;Each opponent loses 3 life unless that player sacrifices a nonland permanent or discards a card.;Untap up to two target creatures and up to two target lands.;Up to one target creature gains double strike until end of turn.;Target opponent exiles cards from the top of their library until they exile a nonland card. Until end of turn, you may cast that card without paying its mana cost.;Each opponent exiles two cards from their hand.;Destroy target noncreature permanent.;Target land you control becomes a 4/4 Elemental creature with trample. It's still a land.;Untap up to four target Forests.;Urza, Academy Headmaster deals 1 damage to target player or planeswalker and 1 damage to up to one target creature that player or that planeswalker's controller controls. That creature can't block this turn.;During target opponent's next turn, creatures that player controls attack Urza, Academy Headmaster if able.;Create a 1/1 green Elf Druid creature token with \"{T}: Add {G}.\";Put a -1/-1 counter on up to one target creature.;Untap all creatures you control. Those creatures get +1/+1 until end of turn.;Scry 2.;Create a 2/2 black Zombie creature token. Put the top two cards of your library into your graveyard.;Until your next turn, prevent all damage target permanent would deal.;Look at the top card of your library. If it's a creature card, you may reveal it and put it into your hand.;Reveal cards from the top of your library until you reveal an artifact card. Put that card into your hand and the rest on the bottom of your library in a random order.;Put two +1/+1 counters on up to one target creature.;Reveal cards from the top of your library until you reveal a creature card. Put that card into your hand and the rest on the bottom of your library in a random order.;Create a colorless artifact token named Etherium Cell with \"{T}, Sacrifice this artifact: Add one mana of any color.\";Reveal the top three cards of your library. Put all nonland permanent cards revealed this way into your hand and the rest on the bottom of your library in any order.;You gain 3 life.;Urza, Academy Headmaster deals 2 damage to each opponent.;Scry 1. Urza, Academy Headmaster deals 1 damage to each opponent.;Until your next turn, up to one target creature gets -3/-0 and its activated abilities can't be activated.;Untap target land you control. Until your next turn, it becomes a 5/5 Elemental creature with haste. It's still a land.;Exile the top card of your library. You may cast that card. If you don't, Urza, Academy Headmaster deals 2 damage to each opponent.;Add {R}{R}.;Create a 0/1 green Plant creature token.;Create a 1/1 colorless Construct artifact creature token with defender.;Choose up to two target creatures. Until your next turn, whenever either of those creatures deals combat damage, you draw a card.;Up to one target creature gets -2/-1 until your next turn.;Target player draws two cards, then discards two cards.;Reveal the top card of your library and put that card into your hand. Each opponent loses life equal to its converted mana cost.;You may discard a card. If you do, draw a card.;Until end of turn, up to one target creature gets +2/+2 and gains vigilance and haste.;Creatures you control get +1/+1 and gain trample until end of turn.;Scry 1, then draw a card.;Create two 3/1 red Elemental creature tokens with haste. Exile them at the beginning of the next end step.;Untap up to one target creature and up to one target land.;Until end of turn, Urza, Academy Headmaster becomes a 5/5 Human Soldier Ally creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.;Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand.;Urza, Academy Headmaster deals 2 damage to target player or planeswalker.;Each player discards a card.;Up to one target creature gets -2/-0 until your next turn.;Up to one target creature an opponent controls attacks Urza, Academy Headmaster during its controller's next turn if able.;Until your next turn, target creature gains indestructible. Untap that creature.;Untap up to two target artifacts.;Draw a card, then add one mana of any color.;Look at the top card of your library. If it's a noncreature, nonland card, you may reveal it and put it into your hand.;Until your next turn, prevent all damage that would be dealt to and dealt by target permanent an opponent controls.;Create three 1/1 white Soldier creature tokens.;Urza, Academy Headmaster deals 3 damage to any target.;Urza, Academy Headmaster deals 1 damage to target player or planeswalker.;Each player draws a card.;Target player discards a card.;Untap two target lands.;Each opponent loses 1 life. You gain life equal to the life lost this way.;Look at the top two cards of your library. Put one of them into your hand and the other on the bottom of your library.;Create a 1/1 white Kor Soldier creature token. You may attach an Equipment you control to it.;Until your next turn, creatures you control get +1/+0 and gain lifelink.;Until end of turn, Urza, Academy Headmaster becomes a legendary 4/4 red Dragon creature with flying, indestructible, and haste. (He doesn't lose loyalty while he's not a planeswalker.);Destroy another target planeswalker.;Create a 3/3 black Beast creature token with deathtouch.;Look at the top two cards of your library. Put one of them into your graveyard.;Until end of turn, up to one target creature gets +1/+1 and gains first strike, vigilance, and lifelink.;Distribute three +1/+1 counters among one, two, or three target creatures you control.;Look at the top four cards of your library. You may reveal an Aura, creature, or planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in any order.;Until your next turn, whenever a creature an opponent controls attacks, it gets -1/-0 until end of turn.;Add X mana in any combination of {R} and/or {G}, where X is the number of creatures you control.;Exile the top three cards of target opponent's library.;Reveal the top five cards of your library. Put all creature cards revealed this way into your hand and the rest on the bottom of your library in any order.;Search your library for a Swamp card, reveal it, and put it into your hand. Then shuffle your library.;Draw a card. Target player puts the top card of their library into their graveyard.;Put a +1/+1 counter on up to one target creature.;Creatures you control get +1/+1 and gain haste until end of turn.;Create a 1/1 white Soldier creature token.;Target creature gets +3/+3 and gains flying until end of turn.;Draw a card, then discard a card at random.;Create a 1/1 black Vampire creature token with lifelink.;Put a loyalty counter on Urza, Academy Headmaster for each creature target opponent controls.;Urza, Academy Headmaster deals 1 damage to any target.;Tap target permanent. It doesn't untap during its controller's next untap step.;Untap target Mountain. It becomes a 4/4 red Elemental creature until end of turn. It's still a land.;Exile target permanent you own. Return it to the battlefield under your control at the beginning of the next end step.;Create a 1/1 black Wolf creature token with deathtouch.;Target permanent doesn't untap during its controller's next untap step.;Urza, Academy Headmaster deals 2 damage to any target and you gain 2 life.;Look at the top five cards of your library. You may reveal an artifact card from among them and put it into your hand. Put the rest on the bottom of your library in any order.;You gain 1 life for each creature you control.;You gain 2 life.;Search your library for a card named Nissa's Chosen and put it onto the battlefield. Then shuffle your library.;You gain 2 life for each Elf you control.;Discard a card. If a red card is discarded this way, Urza, Academy Headmaster deals 4 damage to any target.$$$Draw a card.;Search your library and/or graveyard for a card named Sunlit Hoplite and put it onto the battlefield. If you search your library this way, shuffle it.;Exile target creature or enchantment you don't control until target enchantment you control leaves the battlefield.;Return target nonland permanent to its owner's hand, then that player exiles a card from their hand.;Up to two target creatures you control each get +2/+1 until end of turn.;Create two 1/1 white Human Soldier creature tokens.;You gain 5 life.;Until end of turn, Urza, Academy Headmaster becomes a copy of target creature you control. Prevent all damage that would be dealt to him this turn.;Urza, Academy Headmaster deals 1 damage to each of up to two target creatures. Those creatures can't block this turn.;Create two 2/2 black and green Wolf creature tokens with \"When this creature dies, put a loyalty counter on each Garruk you control.\";Destroy target creature. Draw a card.;Destroy target nonland permanent.;Urza, Academy Headmaster deals 3 damage to any target.;Draw cards equal to the greatest power among creatures you control.;Destroy target creature.;Reveal cards from the top of your library until you reveal a creature card. Put that card into your hand and the rest on the bottom of your library in a random order.;Urza, Academy Headmaster deals 4 damage to target creature and 2 damage to that creature's controller.;Urza, Academy Headmaster deals 4 damage to any target. You gain 4 life.;Return up to two target creatures to their owners' hands.;Exile target creature. Its controller gains 2 life.;Target creature you control deals damage equal to its power to target creature or planeswalker.;Add {R}{R}.;Urza, Academy Headmaster deals 2 damage to any target.;Urza, Academy Headmaster deals 3 damage to each non-Elemental creature.;Put a loyalty counter on each red planeswalker you control.;Create two 1/1 red Elemental creature tokens. They gain haste. Sacrifice them at the beginning of the next end step.;You may cast target instant or sorcery card with converted mana cost 3 or less from your graveyard. If that card would be put into your graveyard this turn, exile it instead.;You may put a Vampire creature card from your hand onto the battlefield.;Create a 4/4 blue Elemental Bird creature token with flying.;Create a 2/2 white Cat Soldier creature token named Ajani's Pridemate with \"Whenever you gain life, put a +1/+1 counter on Ajani's Pridemate.\";If you have at least 15 life more than your starting life total, exile Urza, Academy Headmaster and each artifact and creature your opponents control.;Urza, Academy Headmaster deals 1 damage to any target.;Create a 4/4 white Angel creature token with flying and vigilance.;Return target artifact card from your graveyard to your hand.;Create a 1/1 black Assassin creature token with deathtouch and \"Whenever this creature deals damage to a planeswalker, destroy that planeswalker.\";Target creature gets +2/+1 and gains haste until end of turn. Scry 1.;Target artifact you control becomes a copy of another target artifact or creature you control until end of turn, except it's an artifact in addition to its other types.;Untap target permanent.;Exile target creature.;You gain life equal to the greatest toughness among creatures you control.;Until your next turn, prevent all damage that would be dealt to and dealt by target permanent an opponent controls.;Target player puts the top four cards of their library into their graveyard. Then exile each opponent's graveyard.;Amass 2. (Put two +1/+1 counters on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.);Return up to one target artifact, creature, or enchantment to its owner's hand. Draw a card.;Return target card from your graveyard to your hand.;When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy.;Destroy target creature or planeswalker.;Target creature you control fights target creature you don't control.;Put a +1/+1 counter on each creature you control and a loyalty counter on each other planeswalker you control.;Look at the top three cards of your library. Exile one face down and put the rest on the bottom of your library in any order. For as long as it remains exiled, you may look at that card and you may cast it if it's a creature card.;Put a +1/+1 counter on target creature.;Create a 2/2 green Wolf creature token.;Create a 1/1 red Devil creature token with \"When this creature dies, it deals 1 damage to any target.\";Create a 4/4 red Dragon creature token with flying.;Urza, Academy Headmaster deals 2 damage to any target.;Destroy target creature. Its controller draws two cards.;Each player sacrifices two creatures.;Target player discards a card.;Look at the top four cards of your library. You may reveal a noncreature, nonland card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.;Create a 2/2 blue Wizard creature token. Draw a card, then discard a card.;Exile target creature with power 4 or greater.;Create a 0/3 white Wall creature token with defender.;Destroy target permanent that's one or more colors.;You may choose an artifact card you own from outside the game or in exile, reveal that card, and put it into your hand.;Urza, Academy Headmaster deals 3 damage to any target.;Tap target creature. It doesn't untap during its controller's next untap step.;Exile target nonland permanent with converted mana cost 1 or less.;Create a 1/1 colorless Thopter artifact creature token with flying. You gain 1 life.;Look at the top four cards of your library. You may reveal up to two creature cards from among them and put them into your hand. Put the rest on the bottom of your library in a random order.;Target player sacrifices a creature.;Exile target permanent.;Destroy target creature.;Urza, Academy Headmaster deals 3 damage divided as you choose among one, two, or three targets.;Destroy target nonland permanent with converted mana cost 3 or less.;Urza, Academy Headmaster deals damage to target creature equal to the total number of instant and sorcery cards you own in exile and in your graveyard.;Return up to two target land cards from your graveyard to the battlefield.;Create a white Aura enchantment token named Mask attached to another target permanent. The token has enchant permanent and totem armor.;Exile another target permanent you own, then return it to the battlefield under your control.;Target creature you control deals damage equal to its power to target creature you don't control.;Urza, Academy Headmaster deals 4 damage to target player or planeswalker.;Return target creature card from your graveyard to your hand.;Until your next turn, target artifact you control becomes a 5/5 creature in addition to its other types.;Creatures you control get +2/+2 until end of turn.;Urza, Academy Headmaster deals 10 damage to target creature or planeswalker.;Put target creature or planeswalker card from a graveyard onto the battlefield under your control.;Destroy target artifact, enchantment, or creature with flying.;Target creature gets -X/-X until end of turn, where X is the number of Zombies you control.;You may cast Zombie cards from your graveyard this turn.;Draw a card. If you control three or more artifacts, draw two cards instead.;Return target creature card with converted mana cost 2 or less from your graveyard to the battlefield.;If you don't control a creature named Mowu, create Mowu, a legendary 3/3 green Hound creature token.;Draw two cards.;Sacrifice an artifact. If you do, return target artifact card from your graveyard to the battlefield.;Urza, Academy Headmaster deals 3 damage to each tapped creature target player controls.;Target player draws two cards. Until your next turn, instant, sorcery, and planeswalker spells that player casts cost {2} less to cast.;Urza, Academy Headmaster deals 3 damage to target creature or planeswalker.;You gain 2 life and draw two cards.;Put target nonland permanent into its owner's library third from the top.;Put a card you own with a silver counter on it from exile into your hand.;Create a 0/0 colorless Construct artifact creature token with \"This creature gets +1/+1 for each artifact you control.\";Draw three cards, then put two cards from your hand on top of your library in any order.;Return target creature to its owner's hand.;Return target Pirate card from your graveyard to the battlefield.;Destroy target creature.;Target creature gets +X/+X until end of turn, where X is the number of creatures you control.;Gain control of target creature until end of turn. Untap it. It gains haste until end of turn. Sacrifice it at the beginning of the next end step if it has converted mana cost 3 or less.;Head to AskUrza.com and click -1.;Target Dinosaur you control deals damage equal to its power to target creature you don't control.;Destroy target artifact, creature, or enchantment. Create a Treasure token. (It's an artifact with \"{T}, Sacrifice this artifact: Add one mana of any color.\");Create a 3/3 green Dinosaur creature token with trample.;Create a 2/2 blue Illusion creature token with \"When this creature becomes the target of a spell, sacrifice it.\";Destroy target creature. Draw a card.;Target creature gets +5/+5 until end of turn.;Urza, Academy Headmaster deals 2 damage divided as you choose among one or two targets.;Urza, Academy Headmaster deals 7 damage to target opponent, creature an opponent controls, or planeswalker an opponent controls.;Gain control of target creature.;Exile the top card of your library. You may play it this turn.;Destroy target tapped creature.;Until end of turn, Urza, Academy Headmaster becomes a 6/6 Human Soldier creature that's still a planeswalker. Prevent all damage that would be dealt to him this turn.;Destroy target artifact or enchantment.;Destroy target creature with a -1/-1 counter on it.;Until end of turn, Urza, Academy Headmaster becomes a 5/5 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.;Look at the top card of your library. If it's a land card or a creature card with converted mana cost less than or equal to the number of loyalty counters on Urza, Academy Headmaster, you may put that card onto the battlefield.;Return target creature card from your graveyard to the battlefield. That creature is a black Zombie in addition to its other colors and types.;Until end of turn, Urza, Academy Headmaster becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.;You get an emblem with \"As long as you control a Gideon planeswalker, you can't lose the game and your opponents can't win the game.\";Target creature you control fights another target creature.;Target opponent loses life equal to the number of artifacts you control.;Target creature gets +X/-X until end of turn, where X is the number of artifacts you control.;Exile target creature. Its controller gains life equal to its power.;Reveal the top two cards of your library. Put all land cards from among them onto the battlefield and the rest into your hand.;Urza, Academy Headmaster deals 4 damage to target creature.;Create a token that's a copy of target artifact or creature you control, except it's an artifact in addition to its other types. That token gains haste. Exile it at the beginning of the next end step.;You gain 2 life and draw a card.;Return target permanent card from your graveyard to your hand.;Urza, Academy Headmaster deals 4 damage to target creature.;Put a +1/+1 counter on each creature you control.;Exile Urza, Academy Headmaster or up to one target creature. Return that card to the battlefield under its owner's control at the beginning of your next upkeep. You lose 2 life.;Each opponent loses 2 life and you gain 2 life.;Each opponent discards a card and you draw a card.;You may sacrifice an artifact. If you do, destroy target artifact or creature.;Tap up to two target nonland permanents. They don't untap during their controller's next untap step.;Put the top two cards of your library into your graveyard, then you may return a creature card from your graveyard to your hand.;Gain control of target artifact.;Exile target enchantment, tapped artifact, or tapped creature.;Create a 2/2 green Wolf creature token. Transform Arlinn Kord.;Urza, Academy Headmaster deals 3 damage to any target. Transform Arlinn, Embraced by the Moon.;Return target creature to its owner's hand.;Discard all the cards in your hand, then draw that many cards plus one.;Reveal the top four cards of your library. You may put a creature card and/or a land card from among them into your hand. Put the rest into your graveyard.;Create a 2/2 white Knight Ally creature token.;You get an emblem with \"Creatures you control get +1/+1.\";Create Ashaya, the Awoken World, a legendary 4/4 green Elemental creature token.;Urza, Academy Headmaster deals 2 damage to target creature.;You may cast target instant or sorcery card from your graveyard this turn. If that card would be put into your graveyard this turn, exile it instead.;Until end of turn, Urza, Academy Headmaster becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.;Create a 4/4 red Dragon creature token with flying.;When you cast your next instant or sorcery spell from your hand this turn, it gains rebound. (Exile the spell as it resolves. At the beginning of your next upkeep, you may cast that card from exile without paying its mana cost.);Draw a card. You may play an additional land this turn.;Destroy all creatures with power 4 or greater.;Target player draws a card.;Search your library for a card, then shuffle your library and put that card on top of it.;Create a 3/3 green Beast creature token.;Creatures you control get +3/+3 and gain trample until end of turn.;Create a 5/5 black Demon creature token with flying. You lose 2 life.;Untap up to four target permanents.;You may put an Equipment card from your hand or graveyard onto the battlefield.;Create a 2/2 black Vampire creature token with flying.;Urza, Academy Headmaster deals 4 damage to target creature.;Destroy target creature. You gain life equal to its toughness.;Return another target nonland permanent to its owner's hand.;Put a +1/+1 counter on each creature you control and a loyalty counter on each other planeswalker you control.;Reveal the top three cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other on the bottom of your library in any order.;Create a 2/2 red and green Satyr creature token with haste.;You may put a green creature card from your hand onto the battlefield.;Target creature gets +X/+X or -X/-X until end of turn, where X is the number of Swamps you control.;Target player puts the top ten cards of their library into their graveyard.;Target creature gains flying and double strike until end of turn.;Gain control of target creature until end of turn. Untap that creature. It gains haste until end of turn.;Urza, Academy Headmaster deals damage equal to the number of cards in target player's hand to that player.;You get an emblem with \"Creatures you control get +1/+0.\";Until end of turn, Urza, Academy Headmaster becomes a Human Soldier creature with power and toughness each equal to the number of loyalty counters on him and gains indestructible. He's still a planeswalker. Prevent all damage that would be dealt to him this turn.;When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy.;Draw a card for each tapped creature target player controls.;Add {R} for each Mountain you control.;Creatures can't be blocked this turn.;Garruk Relentless deals 3 damage to target creature. That creature deals damage equal to its power to him.;Create a 2/2 green Wolf creature token.;Sacrifice a creature. If you do, search your library for a creature card, reveal it, put it into your hand, then shuffle your library.;Creatures you control gain trample and get +X/+X until end of turn, where X is the number of creature cards in your graveyard.;Urza, Academy Headmaster deals 3 damage to any target and you gain 3 life.;Target opponent's life total becomes 10.;Target artifact becomes an artifact creature with base power and toughness 5/5.;Target player loses X life and you gain X life, where X is twice the number of artifacts you control.;Create three 1/1 white Soldier creature tokens.;Put a +1/+1 counter on each creature you control. Those creatures gain vigilance until end of turn.;Reveal the top card of your library and put it into your hand. Urza, Academy Headmaster deals damage to himself equal to that card's converted mana cost.;Target creature's controller sacrifices it, then that player creates a 5/5 red Dragon creature token with flying.;Each Dragon creature you control deals damage equal to its power to target player or planeswalker.;Each player discards their hand, then draws three cards.$$$Put target creature card from a graveyard onto the battlefield under your control.;Gain control of all creatures target opponent controls.;Until end of turn, creatures you control gain flying and get +X/+X, where X is your devotion to white.;Return all enchantment cards from your graveyard to the battlefield.;You may cast up to three face-up cards your opponents own from exile without paying their mana costs.;Until end of turn, each creature you control has base power and toughness 10/10 and gains trample.;Gain control of all creatures until end of turn. Untap them. They gain haste until end of turn.;Draw four cards. When you do, Urza, Academy Headmaster deals damage to any target equal to the number of cards in your hand.;Exchange control of target artifact or creature you control and target creature an opponent controls with power 3 or less.;You get an emblem with \"Creatures you control get +3/+3 and have trample.\";Create three 1/1 black Assassin creature tokens with \"Whenever this creature deals combat damage to a player, that player loses the game.\";Flip five coins. Take an extra turn after this one for each coin that comes up heads.;Create a 6/6 green Wurm creature token for each land you control.;Target opponent gets an emblem with \"Whenever a player draws a card, you lose 2 life.\";Target creature gets +10/+10 and gains trample until end of turn.;Urza, Academy Headmaster deals 10 damage to target player and each creature that player controls.;Until end of turn, each Vampire you control gains \"{T}: Gain control of target creature.\";Creatures you control with flying get +5/+5 until end of turn.;Creatures you control gain flying and double strike until end of turn.;You may choose a creature card you own from outside the game, reveal it, and put it into your hand.;You get an emblem with \"Islands you control have '{T}: Draw a card.'\";You get an emblem with \"Instant and sorcery cards in your graveyard have retrace.\" (You may cast instant and sorcery cards from your graveyard by discarding a land card in addition to paying their other costs.);You get an emblem with \"If you control a creature, damage that would reduce your life total to less than 1 reduces it to 1 instead.\";Exile the top ten cards of your library. Put all artifact cards from among them onto the battlefield.;Creatures you control can't be blocked this turn.;Exile Urza, Academy Headmaster and each creature your opponents control.;Each opponent who doesn't control a legendary creature or planeswalker loses the game.;You get an emblem with \"Lands you control have indestructible.\" Search your library for any number of Forest cards, put them onto the battlefield tapped, then shuffle your library.;Exile the top seven cards of your library. You may play them this turn.;Each opponent chooses a permanent they control of each permanent type and sacrifices the rest.;Draw seven cards. Then if your library has no cards in it, you win the game.;Exile target nonland permanent.;Put three +1/+1 counters on each creature you control. Those creatures gain trample until end of turn.;Tap all permanents target opponent controls. That player skips their next untap step.;Urza, Academy Headmaster deals damage to target player equal to the number of cards that player owns in exile and you gain that much life.;Look at the top ten cards of your library. Put three of them into your hand and the rest on the bottom of your library in a random order.;You get an emblem with \"At the beginning of each end step, create a 4/4 red and green Beast creature token with trample.\";Separate all permanents target player controls into two piles. That player sacrifices all permanents in the pile of their choice.;Restart the game, leaving in exile all non-Aura permanent cards exiled with Urza, Academy Headmaster. Then put those cards onto the battlefield under your control.;For each creature card in your graveyard, put a +1/+1 counter on each creature you control.;Draw seven cards. Urza, Academy Headmaster deals 7 damage to each creature your opponents control.;You get an emblem with \"Whenever a creature you control deals combat damage to a player, that player loses the game.\";You get an emblem with \"Whenever you cast an instant or sorcery spell, this emblem deals 4 damage to any target and you draw two cards.\";For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step.;Destroy up to six target nonland permanents, then create six 2/2 green Cat Warrior creature tokens with forestwalk.;Put the top seven cards of your library into your graveyard. Return all non-Aura enchantment cards from your graveyard to the battlefield, then do the same for Aura cards.;Choose left or right. Each player gains control of all nonland permanents other than Urza, Academy Headmaster controlled by the next player in the chosen direction.;Creatures you control get +4/+4 and gain trample until end of turn.;Search your library for any number of Dragon creature cards, put them onto the battlefield, then shuffle your library.;Destroy up to two target creatures. Put up to two creature cards from graveyards onto the battlefield under your control.;Put any number of cards from your hand onto the battlefield face down. They're 5/5 artifact creatures.;Put X +1/+1 counters on target creature, where X is your life total.;Exile all but the bottom card of target player's library.;You get an emblem with \"Creatures you control get +2/+2 and have vigilance, trample, and indestructible.\";Create four 5/5 red Dragon creature tokens with flying.;You get an emblem with \"At the beginning of your end step, search your library for a permanent card, put it onto the battlefield, then shuffle your library.\";You get an emblem with \"At the beginning of your end step, create three 1/1 white Cat creature tokens with lifelink.\";Until end of turn, target creature gains trample and gets +X/+X, where X is the number of lands you control.;Tap all creatures your opponents control. You take an extra turn after this one.;You get an emblem with \"Whenever an artifact is put into your graveyard from the battlefield, return that card to the battlefield at the beginning of the next end step.\";Target player gets an emblem with \"Whenever you activate an ability that isn't a mana ability, copy it. You may choose new targets for the copy.\";Target player gets an emblem with \"Whenever you cast an instant or sorcery spell, copy it. You may choose new targets for the copy.\";Urza, Academy Headmaster deals 10 damage to target player and each creature and planeswalker they control.;Take an extra turn after this one.;You get an emblem with \"Whenever you draw a card, exile target permanent an opponent controls.\";You get an emblem with \"You may cast instant and sorcery cards from your graveyard. If a card cast this way would be put into your graveyard, exile it instead.\";Exile all cards from target player's library, then that player shuffles their hand into their library.;Destroy all creatures target opponent controls. Urza, Academy Headmaster deals damage to that player equal to their total power.;Until end of turn, creatures you control gain deathtouch and \"Whenever this creature deals damage to an opponent, that player loses the game.\";You get an emblem with \"Whenever a creature enters the battlefield under your control, you may draw a card.\";Each opponent loses life equal to the number of cards in their graveyard.;Head to AskUrza.com and click -6.;Dinosaurs you control get +4/+4 until end of turn.;Gain control of up to three target creatures.;Target player's life total becomes 1.;Create two tokens that are copies of Urza, Academy Headmaster, except they're not legendary.;Urza, Academy Headmaster deals 7 damage to each opponent. You draw seven cards.;Look at the top ten cards of your library. You may put any number of creature and/or land cards from among them onto the battlefield. Put the rest on the bottom of your library in a random order.;Search your library for up to two creature and/or planeswalker cards, put them onto the battlefield, then shuffle your library.;Exile each nonland permanent your opponents control.;Urza, Academy Headmaster deals 7 damage to target player or planeswalker. That player or that planeswalker's controller discards seven cards, then sacrifices seven permanents.;Search your library for any number of basic land cards, put them onto the battlefield, then shuffle your library. Those lands become 4/4 Elemental creatures with trample. They're still lands.;Exile the top ten cards of your library. Choose an instant or sorcery card exiled this way and copy it three times. You may cast the copies without paying their mana costs.;Draw a card for each green creature you control.;Return all creature cards from your graveyard to the battlefield.;Creatures you control get +2/+2 until end of turn. Tap all creatures your opponents control.;Untap up to two target lands you control. They become 5/5 Elemental creatures with flying and haste until end of turn. They're still lands.;Destroy all non-Zombie creatures.;You get an emblem with \"Creatures you control have double strike, trample, hexproof, and haste.\";Gain control of all artifacts and creatures target opponent controls.;Put X +1/+1 counters on target creature, where X is your life total. That creature gains trample until end of turn.;You get an emblem with \"At the beginning of combat on your turn, target artifact you control becomes an artifact creature with base power and toughness 5/5.\";Put five +1/+1 counters on each creature you control and five loyalty counters on each other planeswalker you control.;Creatures you control get +5/+5 and gain trample until end of turn.;Urza, Academy Headmaster deals 6 damage to target player or planeswalker and each creature that player or that planeswalker's controller controls.;Search your library for up to three artifact cards with different names, put them onto the battlefield, then shuffle your library.;You get an emblem with \"Your opponents can't untap more than two permanents during their untap steps.\";You get an emblem with \"Whenever a land enters the battlefield under your control, you may draw a card.\";You get an emblem with \"Whenever you cast a spell, this emblem deals 5 damage to any target.\";You gain X life and draw X cards, where X is the number of lands you control.;Choose target artifact card in a graveyard or artifact on the battlefield. Create three tokens that are copies of it.;Draw three cards. You get an emblem with \"You may cast spells from your hand without paying their mana costs.\";You get an emblem with \"At the beginning of your end step, create X 2/2 black Zombie creature tokens, where X is two plus the number of Zombies you control.\";You get an emblem with \"Whenever you cast a spell that targets one or more permanents, gain control of those permanents.\";Create a number of 1/1 black Vampire Knight creature tokens with lifelink equal to the highest life total among all players.;Search your library for an artifact or creature card, put it onto the battlefield, then shuffle your library. It gains haste. Return it to your hand at the beginning of the next end step.;You get an emblem with \"Creatures you control have haste and '{T}: This creature deals damage equal to its power to any target.'\";You get an emblem with \"Whenever an opponent casts their first spell each turn, counter that spell.\";You get an emblem with \"Whenever a creature enters the battlefield under your control, you may have it fight target creature.\" Then create three 8/8 blue Octopus creature tokens.;Untap up to six target lands. They become 6/6 Elemental creatures. They're still lands.;Urza, Academy Headmaster deals 6 damage to each opponent. Each player dealt damage this way gets an emblem with \"At the beginning of your upkeep, this emblem deals 3 damage to you.\";You get an emblem with \"Whenever a creature dies, return it to the battlefield under your control at the beginning of the next end step.\";You get an emblem with \"Whenever you cast a spell, target opponent puts the top five cards of their library into their graveyard.\";Artifacts you control become artifact creatures with base power and toughness 5/5 until end of turn.;Search your library for any number of Dragon creature cards and put them onto the battlefield. Then shuffle your library.;You get an emblem with \"Your opponents can't cast noncreature spells.\";You get an emblem with \"At the beginning of your end step, create a 9/9 blue Kraken creature token.\";You get an emblem with \"Creatures you control get +2/+2 and have flying.\";You gain 7 life, draw seven cards, then put up to seven permanent cards from your hand onto the battlefield.;Urza, Academy Headmaster deals 10 damage to target player or planeswalker and each creature that player or that planeswalker's controller controls.;Target player puts the top twenty cards of their library into their graveyard.;Put all creature cards from all graveyards onto the battlefield under your control.;You get an emblem with \"{1}{B}, Sacrifice a creature: You gain X life and draw X cards, where X is the sacrificed creature's power.\";You get an emblem with \"You may activate loyalty abilities of planeswalkers you control on any player's turn any time you could cast an instant.\";Create a colorless Equipment artifact token named Stoneforged Blade. It has indestructible, \"Equipped creature gets +5/+5 and has double strike,\" and equip {0}.;You get an emblem with \"At the beginning of each opponent's upkeep, that player sacrifices a creature.\";You get an emblem with \"At the beginning of your draw step, draw two additional cards\" and \"At the beginning of your end step, discard your hand.\";Target opponent gets an emblem with \"Whenever a creature attacks you, it gets +5/+5 and gains trample until end of turn.\";Each player shuffles their hand and graveyard into their library. You draw seven cards.;You get an emblem with \"If a source would deal damage to you or a planeswalker you control, prevent all but 1 of that damage.\";You gain 100 life.;For each player, search that player's library for a nonland card and exile it, then that player shuffles their library. You may cast those cards without paying their mana costs.;Exile the top seven cards of your library. You may put any number of creature and/or land cards from among them onto the battlefield.;Exile all cards from all opponents' hands and graveyards.;You get an emblem with \"Whenever you cast a creature spell, you may search your library for a creature card, put it onto the battlefield, then shuffle your library.\";You get an emblem with \"Swamps you control have '{T}: Add {B}{B}{B}{B}.'\";Any number of target players each draw twenty cards.;Create X 2/2 white Cat creature tokens, where X is your life total.;Create five 4/4 red Dragon creature tokens with flying.;You get an emblem with \"Artifacts, creatures, enchantments, and lands you control have indestructible.\";Gain control of all creatures until end of turn. Untap them. They gain haste until end of turn.;Destroy up to three target creatures and/or other planeswalkers. Return each card put into a graveyard this way to the battlefield under your control.;Exile all other permanents.;Urza, Academy Headmaster deals 6 damage to each of up to six targets.;You get an emblem with \"You have no maximum hand size\" and \"Whenever a card is put into your graveyard from anywhere, you may return it to your hand.\";You get an emblem with \"Mountains you control have '{T}: This land deals 1 damage to any target.'\";You get an emblem with \"Whenever you cast a spell, exile target permanent.\";Destroy all lands target player controls.;You control target player during that player's next turn.;Destroy all other permanents except for lands and tokens.;Create a white Avatar creature token. It has \"This creature's power and toughness are each equal to your life total.\";Search your library for any number of Elf creature cards and put them onto the battlefield. Then shuffle your library.;Cast any number of red instant and/or sorcery cards from your graveyard without paying their mana costs.$$$ \ No newline at end of file diff --git a/OLDdata/site/other/askScryfall/plus.png b/OLDdata/site/other/askScryfall/plus.png deleted file mode 100644 index 0cb5784a..00000000 Binary files a/OLDdata/site/other/askScryfall/plus.png and /dev/null differ diff --git a/OLDdata/site/other/askScryfall/ultimate.png b/OLDdata/site/other/askScryfall/ultimate.png deleted file mode 100644 index e553ee85..00000000 Binary files a/OLDdata/site/other/askScryfall/ultimate.png and /dev/null differ diff --git a/OLDdata/site/other/askScryfall/urzaBlank.png b/OLDdata/site/other/askScryfall/urzaBlank.png deleted file mode 100644 index 2d5bd89f..00000000 Binary files a/OLDdata/site/other/askScryfall/urzaBlank.png and /dev/null differ diff --git a/OLDdata/site/other/life/NoSleep.js b/OLDdata/site/other/life/NoSleep.js deleted file mode 100644 index 9453d5fe..00000000 --- a/OLDdata/site/other/life/NoSleep.js +++ /dev/null @@ -1,192 +0,0 @@ -/*! NoSleep.js v0.9.0 - git.io/vfn01 - Rich Tibbett - MIT license */ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["NoSleep"] = factory(); - else - root["NoSleep"] = factory(); - })(typeof self !== 'undefined' ? self : this, function() { - return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - var _require = __webpack_require__(1), - webm = _require.webm, - mp4 = _require.mp4; - - // Detect iOS browsers < version 10 - - - var oldIOS = typeof navigator !== 'undefined' && parseFloat(('' + (/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0, ''])[1]).replace('undefined', '3_2').replace('_', '.').replace('_', '')) < 10 && !window.MSStream; - - var NoSleep = function () { - function NoSleep() { - var _this = this; - - _classCallCheck(this, NoSleep); - - if (oldIOS) { - this.noSleepTimer = null; - } else { - // Set up no sleep video element - this.noSleepVideo = document.createElement('video'); - - this.noSleepVideo.setAttribute('muted', ''); - this.noSleepVideo.setAttribute('title', 'No Sleep'); - this.noSleepVideo.setAttribute('playsinline', ''); - - this._addSourceToVideo(this.noSleepVideo, 'webm', webm); - this._addSourceToVideo(this.noSleepVideo, 'mp4', mp4); - - this.noSleepVideo.addEventListener('loadedmetadata', function () { - if (_this.noSleepVideo.duration <= 1) { - // webm source - _this.noSleepVideo.setAttribute('loop', ''); - } else { - // mp4 source - _this.noSleepVideo.addEventListener('timeupdate', function () { - if (_this.noSleepVideo.currentTime > 0.5) { - _this.noSleepVideo.currentTime = Math.random(); - } - }); - } - }); - } - } - - _createClass(NoSleep, [{ - key: '_addSourceToVideo', - value: function _addSourceToVideo(element, type, dataURI) { - var source = document.createElement('source'); - source.src = dataURI; - source.type = 'video/' + type; - element.appendChild(source); - } - }, { - key: 'enable', - value: function enable() { - if (oldIOS) { - this.disable(); - console.warn('\n NoSleep enabled for older iOS devices. This can interrupt\n active or long-running network requests from completing successfully.\n See https://github.com/richtr/NoSleep.js/issues/15 for more details.\n '); - this.noSleepTimer = window.setInterval(function () { - if (!document.hidden) { - window.location.href = window.location.href.split('#')[0]; - window.setTimeout(window.stop, 0); - } - }, 15000); - } else { - this.noSleepVideo.play(); - } - } - }, { - key: 'disable', - value: function disable() { - if (oldIOS) { - if (this.noSleepTimer) { - console.warn('\n NoSleep now disabled for older iOS devices.\n '); - window.clearInterval(this.noSleepTimer); - this.noSleepTimer = null; - } - } else { - this.noSleepVideo.pause(); - } - } - }]); - - return NoSleep; - }(); - - ; - - module.exports = NoSleep; - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - module.exports = { - webm: 'data:video/webm;base64,GkXfo0AgQoaBAUL3gQFC8oEEQvOBCEKCQAR3ZWJtQoeBAkKFgQIYU4BnQI0VSalmQCgq17FAAw9CQE2AQAZ3aGFtbXlXQUAGd2hhbW15RIlACECPQAAAAAAAFlSua0AxrkAu14EBY8WBAZyBACK1nEADdW5khkAFVl9WUDglhohAA1ZQOIOBAeBABrCBCLqBCB9DtnVAIueBAKNAHIEAAIAwAQCdASoIAAgAAUAmJaQAA3AA/vz0AAA=', - mp4: 'data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQADQGgcIQADQGgcAAAACQGeYUQn/wALKCEAA0BoHAAAAAkBnmNEJ/8ACykhAANAaBwhAANAaBwAAAANQZpoNExDP/6plgAMuSEAA0BoHAAAAAtBnoZFESwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBnqVEJ/8ACykhAANAaBwAAAAJAZ6nRCf/AAsoIQADQGgcIQADQGgcAAAADUGarDRMQz/+qZYADLghAANAaBwAAAALQZ7KRRUsK/8ACPkhAANAaBwAAAAJAZ7pRCf/AAsoIQADQGgcIQADQGgcAAAACQGe60Qn/wALKCEAA0BoHAAAAA1BmvA0TEM//qmWAAy5IQADQGgcIQADQGgcAAAAC0GfDkUVLCv/AAj5IQADQGgcAAAACQGfLUQn/wALKSEAA0BoHCEAA0BoHAAAAAkBny9EJ/8ACyghAANAaBwAAAANQZs0NExDP/6plgAMuCEAA0BoHAAAAAtBn1JFFSwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBn3FEJ/8ACyghAANAaBwAAAAJAZ9zRCf/AAsoIQADQGgcIQADQGgcAAAADUGbeDRMQz/+qZYADLkhAANAaBwAAAALQZ+WRRUsK/8ACPghAANAaBwhAANAaBwAAAAJAZ+1RCf/AAspIQADQGgcAAAACQGft0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bm7w0TEM//qmWAAy4IQADQGgcAAAAC0Gf2kUVLCv/AAj5IQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHAAAAAkBn/tEJ/8ACykhAANAaBwAAAANQZvgNExDP/6plgAMuSEAA0BoHCEAA0BoHAAAAAtBnh5FFSwr/wAI+CEAA0BoHAAAAAkBnj1EJ/8ACyghAANAaBwhAANAaBwAAAAJAZ4/RCf/AAspIQADQGgcAAAADUGaJDRMQz/+qZYADLghAANAaBwAAAALQZ5CRRUsK/8ACPkhAANAaBwhAANAaBwAAAAJAZ5hRCf/AAsoIQADQGgcAAAACQGeY0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bmmg0TEM//qmWAAy5IQADQGgcAAAAC0GehkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGepUQn/wALKSEAA0BoHAAAAAkBnqdEJ/8ACyghAANAaBwAAAANQZqsNExDP/6plgAMuCEAA0BoHCEAA0BoHAAAAAtBnspFFSwr/wAI+SEAA0BoHAAAAAkBnulEJ/8ACyghAANAaBwhAANAaBwAAAAJAZ7rRCf/AAsoIQADQGgcAAAADUGa8DRMQz/+qZYADLkhAANAaBwhAANAaBwAAAALQZ8ORRUsK/8ACPkhAANAaBwAAAAJAZ8tRCf/AAspIQADQGgcIQADQGgcAAAACQGfL0Qn/wALKCEAA0BoHAAAAA1BmzQ0TEM//qmWAAy4IQADQGgcAAAAC0GfUkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGfcUQn/wALKCEAA0BoHAAAAAkBn3NEJ/8ACyghAANAaBwhAANAaBwAAAANQZt4NExC//6plgAMuSEAA0BoHAAAAAtBn5ZFFSwr/wAI+CEAA0BoHCEAA0BoHAAAAAkBn7VEJ/8ACykhAANAaBwAAAAJAZ+3RCf/AAspIQADQGgcAAAADUGbuzRMQn/+nhAAYsAhAANAaBwhAANAaBwAAAAJQZ/aQhP/AAspIQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHAAACiFtb292AAAAbG12aGQAAAAA1YCCX9WAgl8AAAPoAAAH/AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAGGlvZHMAAAAAEICAgAcAT////v7/AAAF+XRyYWsAAABcdGtoZAAAAAPVgIJf1YCCXwAAAAEAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAygAAAMoAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAB9AAABdwAAEAAAAABXFtZGlhAAAAIG1kaGQAAAAA1YCCX9WAgl8AAV+QAAK/IFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAUcbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAE3HN0YmwAAACYc3RzZAAAAAAAAAABAAAAiGF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAygDKAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAyYXZjQwFNQCj/4QAbZ01AKOyho3ySTUBAQFAAAAMAEAAr8gDxgxlgAQAEaO+G8gAAABhzdHRzAAAAAAAAAAEAAAA8AAALuAAAABRzdHNzAAAAAAAAAAEAAAABAAAB8GN0dHMAAAAAAAAAPAAAAAEAABdwAAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAAC7gAAAAAQAAF3AAAAABAAAAAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAEEc3RzegAAAAAAAAAAAAAAPAAAAzQAAAAQAAAADQAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAANAAAADQAAAQBzdGNvAAAAAAAAADwAAAAwAAADZAAAA3QAAAONAAADoAAAA7kAAAPQAAAD6wAAA/4AAAQXAAAELgAABEMAAARcAAAEbwAABIwAAAShAAAEugAABM0AAATkAAAE/wAABRIAAAUrAAAFQgAABV0AAAVwAAAFiQAABaAAAAW1AAAFzgAABeEAAAX+AAAGEwAABiwAAAY/AAAGVgAABnEAAAaEAAAGnQAABrQAAAbPAAAG4gAABvUAAAcSAAAHJwAAB0AAAAdTAAAHcAAAB4UAAAeeAAAHsQAAB8gAAAfjAAAH9gAACA8AAAgmAAAIQQAACFQAAAhnAAAIhAAACJcAAAMsdHJhawAAAFx0a2hkAAAAA9WAgl/VgIJfAAAAAgAAAAAAAAf8AAAAAAAAAAAAAAABAQAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACsm1kaWEAAAAgbWRoZAAAAADVgIJf1YCCXwAArEQAAWAAVcQAAAAAACdoZGxyAAAAAAAAAABzb3VuAAAAAAAAAAAAAAAAU3RlcmVvAAAAAmNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAidzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAIABICAgBRAFQAAAAADDUAAAAAABYCAgAISEAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAABYAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAAGAAAAWAAAAXBzdGNvAAAAAAAAAFgAAAOBAAADhwAAA5oAAAOtAAADswAAA8oAAAPfAAAD5QAAA/gAAAQLAAAEEQAABCgAAAQ9AAAEUAAABFYAAARpAAAEgAAABIYAAASbAAAErgAABLQAAATHAAAE3gAABPMAAAT5AAAFDAAABR8AAAUlAAAFPAAABVEAAAVXAAAFagAABX0AAAWDAAAFmgAABa8AAAXCAAAFyAAABdsAAAXyAAAF+AAABg0AAAYgAAAGJgAABjkAAAZQAAAGZQAABmsAAAZ+AAAGkQAABpcAAAauAAAGwwAABskAAAbcAAAG7wAABwYAAAcMAAAHIQAABzQAAAc6AAAHTQAAB2QAAAdqAAAHfwAAB5IAAAeYAAAHqwAAB8IAAAfXAAAH3QAAB/AAAAgDAAAICQAACCAAAAg1AAAIOwAACE4AAAhhAAAIeAAACH4AAAiRAAAIpAAACKoAAAiwAAAItgAACLwAAAjCAAAAFnVkdGEAAAAObmFtZVN0ZXJlbwAAAHB1ZHRhAAAAaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAO2lsc3QAAAAzqXRvbwAAACtkYXRhAAAAAQAAAABIYW5kQnJha2UgMC4xMC4yIDIwMTUwNjExMDA=' - }; - -/***/ }) -/******/ ]); - }); diff --git a/OLDdata/site/other/life/life.js b/OLDdata/site/other/life/life.js deleted file mode 100644 index 8810ca5c..00000000 --- a/OLDdata/site/other/life/life.js +++ /dev/null @@ -1,362 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -console.log("1.1") -//define variables -var playerCount, startingLifeTotal, firstPlayerWide = false, lastPlayerWide = false, playerList = [], rowHeight = 0, columnWidth = 0, rowCount = 0, isFullscreen = true, mouseClickId = 0, noSleep = new NoSleep(), canEnableNoSleep = false -//Setup the enabler for no sleep -document.addEventListener("click", enableNoSleep, false); -function enableNoSleep() { - if (canEnableNoSleep) { - document.removeEventListener("click", enableNoSleep, false); - noSleep.enable(); - } -} -//This function sets everything up -function fullscreen() { - //Full screen! - grid = document.getElementById("gridShell") - if (grid.requestFullscreen) { - grid.requestFullscreen() - } else if (grid.mozRequestFullScreen) { - grid.mozRequestFullScreen() - } else if (grid.webkitRequestFullscreen) { - grid.webkitRequestFullscreen() - } else if (grid.msRequestFullscreen) { - grid.msRequestFullscreen() - } else { - isFullscreen = false - document.getElementById("return").classList.add("permaHidden") - document.getElementById("gridShell").classList.add("fullscreenUnavailable") - } -} -function startGame() { - canEnableNoSleep = document.getElementById("inputWakeLock").checked - fullscreen() - document.getElementById("return").classList.remove("hidden") - //hide the settings and grab player count and starting life total - document.getElementById("settings").classList.add("hidden") - playerCount = parseInt(document.getElementById("inputPlayerCount").value) - startingLifeTotal = parseInt(document.getElementById("inputStartingLife").value) - //determine the layout based on player count - if (playerCount % 2 == 0) { - if (playerCount >= 6) { - firstPlayerWide = true - lastPlayerWide = true - } - } else { - lastPlayerWide = true - } - //Make all the player boxes - for (var i = 1; i <= playerCount; i ++) { - //determine if the current box is rotated or widened - var rotation, wide = false - var orientationIndexAdjust = 0 - if (firstPlayerWide) { - orientationIndexAdjust += 1 - } - if (i == 1 && firstPlayerWide) { - rotation = 180 - } else if (i == playerCount && lastPlayerWide) { - rotation = 0 - } else if ((i + orientationIndexAdjust) % 2 == 0) { - rotation = 270 - } else { - rotation = 90 - } - if ((i == 1 && firstPlayerWide) || (i == playerCount && lastPlayerWide)) {wide = true} - playerList[i - 1] = new playerBox(i, rotation, wide) - document.getElementById("inputPlayer").innerHTML += "" - } - //Determine the grid size - if (isFullscreen) { - columnWidth = screen.width / 2 - 2 - } else { - columnWidth = window.innerWidth / 2 - 2 - } - rowCount = (playerCount - playerCount % 2) / 2 + 1 - if (playerCount == 2 || playerCount == 4) { - rowCount -= 1 - } -// console.log("Row count: " + rowCount) - if (isFullscreen) { - rowHeight = screen.height / rowCount - 2 -// console.log("Full screen, rowHeight: " + rowHeight) -// console.log("screen.height: " + screen.height) - } else { - var heightToUse = window.innerHeight - if (document.documentElement.clientHeight > heightToUse) { -// console.log("document.documentElement.clientHeight: " + document.documentElement.clientHeight) - heightToUse = document.documentElement.clientHeight - } - rowHeight = heightToUse / rowCount - 2 -// console.log("Not full screen, rowHeight: " + rowHeight) -// console.log("window.innerHeight: " + window.innerHeight) - } - //Now that all the player boxes are made, they must be configured - for (var i = 1; i <= playerCount; i++) { - configurePlayerBox(i) - } - drawAllPlayerBoxes() -} -function playerBox(playerBoxID, canvasRotation, wide) { - //Actually needed vars - this.id = playerBoxID - this.rotation = canvasRotation - this.life = startingLifeTotal - this.canvas = document.createElement("canvas") - this.direction = 0 - this.holdTime = 0 - this.touchId = 0.5 - this.color = "#222222" - this.textColor = "#ffffff" - this.image = new Image() - this.image.customVarID = playerBoxID - this.image.onload = function() {drawPlayerBox(this.customVarID)} - //vars to make navigation easier - this.canvas.customVarID = playerBoxID - this.canvas.customVarContext = this.canvas.getContext("2d") - this.canvas.customVarContext.customVarCanvas = this.canvas - //css classes - this.canvas.classList.add("playerBox") - if (wide) { - this.canvas.classList.add("widePlayerBox") - } - //add it to the html - document.getElementById("mainGrid").appendChild(this.canvas) -} -function configurePlayerBox(playerBoxID) { - //All of this configures the size/shape/orientation of the player boxes - var currentPlayer = playerList[playerBoxID - 1] - var context = currentPlayer.canvas.customVarContext - currentPlayer.canvas.width = columnWidth - if (playerList[playerBoxID - 1].canvas.classList.contains("widePlayerBox")) { - currentPlayer.canvas.width = columnWidth * 2 + 2 - } - currentPlayer.canvas.height = rowHeight - context.translate(currentPlayer.canvas.width / 2, currentPlayer.canvas.height / 2) - context.rotate(Math.PI / 180 * currentPlayer.rotation) -} - -function resetLife() { - for (var i = 1; i <= playerCount; i++) { - playerList[i - 1].life = startingLifeTotal - } - document.getElementById('menu').classList.add('hidden') - drawAllPlayerBoxes() -} -function updateColorSelector() { - document.getElementById("inputPlayerColor").value = playerList[parseInt(document.getElementById("inputPlayer").value) - 1].color - document.getElementById("inputTextColor").value = playerList[parseInt(document.getElementById("inputPlayer").value) - 1].textColor -} -function updateBackgroundColor(color) { - playerList[parseInt(document.getElementById("inputPlayer").value) - 1].color = color - drawPlayerBox(parseInt(document.getElementById("inputPlayer").value)) -} -function updateTextColor(color) { - playerList[parseInt(document.getElementById("inputPlayer").value) - 1].textColor = color - drawPlayerBox(parseInt(document.getElementById("inputPlayer").value)) -} -function loadImage(event, destination) { - var input = event.target - var reader = new FileReader() - reader.onload = function() { - var dataURL = reader.result - destination.src = dataURL - } - reader.readAsDataURL(input.files[0]) -} -var savedArtList = [], cardArtUrlList = [], cardArtArtistList = [] -function inputCardArtName(cardArtNameInput) { - var xhttp = new XMLHttpRequest() - xhttp.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - savedArtList = this.responseText.split('"art_crop":"') - savedArtList.splice(0, 1) - document.getElementById("inputCardArtNameNumber").max = savedArtList.length - document.getElementById("inputCardArtNameNumber").value = 1 - for (i = 0; i < savedArtList.length; i ++) { - cardArtUrlList[i] = savedArtList[i].split('","border_crop":')[0] - } - for (i = 0; i < savedArtList.length; i ++) { - cardArtArtistList[i] = savedArtList[i].slice(savedArtList[i].indexOf('"artist":"') + 10, savedArtList[i].indexOf('","border_color":')) - } - inputCardArtNameNumber(1) - } - } - xhttp.open("GET", "https://api.scryfall.com/cards/search?order=released&unique=art&q=name%3D" + cardArtNameInput.replace(/ /g, "_"), true) - xhttp.send() -} -function inputCardArtNameNumber(cardArtNameNumberInput) { - playerList[parseInt(document.getElementById('inputPlayer').value) - 1].image.src = cardArtUrlList[cardArtNameNumberInput - 1] -} -document.getElementById("mainGrid").addEventListener("touchmove", function(event) { - event.preventDefault() -}, false) -function rollRNG() { - document.getElementById("rngOutput").innerHTML = Math.floor(Math.random() * (parseInt(document.getElementById("inputRNGMax").value) - parseInt(document.getElementById("inputRNGMin").value) + 1) + parseInt(document.getElementById("inputRNGMin").value)) -} -function drawPlayerBox(playerBoxID) { - var currentPlayerBox = playerList[playerBoxID - 1] - var context = currentPlayerBox.canvas.customVarContext - context.textBaseline = "middle" - var tempFontSize = 100 - context.font = "100pt belerenbsc" - context.fillStyle = currentPlayerBox.color - var tempCanvasHeight = currentPlayerBox.canvas.height, tempCanvasWidth = currentPlayerBox.canvas.width - if (playerList[playerBoxID - 1].rotation == 90 || playerList[playerBoxID - 1].rotation == 270) { - tempCanvasHeight = tempCanvasWidth - tempCanvasWidth = currentPlayerBox.canvas.height - } - context.fillRect(tempCanvasWidth / -2, tempCanvasHeight / -2, tempCanvasWidth, tempCanvasHeight) - if (currentPlayerBox.image.src != "") { - var imageToDraw = currentPlayerBox.image - if (imageToDraw.width / imageToDraw.height > tempCanvasWidth / tempCanvasHeight) { - //The image is wider and should be fitted to its height - context.drawImage(imageToDraw, tempCanvasHeight / imageToDraw.height * imageToDraw.width / -2, tempCanvasHeight / -2, tempCanvasHeight / imageToDraw.height * imageToDraw.width, tempCanvasHeight) - } else { - //The image is taller and should be fitted to its width - context.drawImage(imageToDraw, tempCanvasWidth / -2, tempCanvasWidth / imageToDraw.width * imageToDraw.height / -2, tempCanvasWidth, tempCanvasWidth / imageToDraw.width * imageToDraw.height) - } - } - if (currentPlayerBox.life < 1) { - context.fillStyle = "#0008" - context.fillRect(tempCanvasWidth / -2, tempCanvasHeight / -2, tempCanvasWidth, tempCanvasHeight) - context.fillStyle = "#800" - } else { - context.fillStyle = playerList[playerBoxID - 1].textColor - } - while (context.measureText(currentPlayerBox.life).width >= tempCanvasWidth) { - tempFontSize -= 1 - context.font = tempFontSize + "pt belerenbsc" - } - var horizontalShift = -1 * parseInt(context.measureText(currentPlayerBox.life).width) / 2 - context.strokeStyle = "black" - context.lineWidth = 5 - context.strokeText(currentPlayerBox.life, horizontalShift, 0) - context.fillText(currentPlayerBox.life, horizontalShift, 0) -} -function drawAllPlayerBoxes() { - for (var i = 1; i <= playerList.length; i ++) { - drawPlayerBox(i) - } -} -//Event Listener magic! (always records mouse/touch positions so the loop can work without events) -var touchX = [], touchY = [] -document.getElementById("mainGrid").addEventListener("mousedown", startMouseCoordinates, true) -window.addEventListener("mousemove", updateMouseCoordinates, true) -window.addEventListener("mouseup", endMouseCoordinates, true) -function startMouseCoordinates() { - mouseClickId += 1 - playerList[event.target.customVarID - 1].touchId = mouseClickId - singleTap(event.target) -} -function updateMouseCoordinates() { - touchX[0] = event.clientX - touchY[0] = event.clientY} -function endMouseCoordinates() { - for (var i = 1; i <= playerList.length; i++) { - playerList[i - 1].touchId = 0.5 - } -} -window.addEventListener("touchstart", switchToTouchEvents, true) -function switchToTouchEvents() { - window.removeEventListener("touchstart", switchToTouchEvents, true) - document.getElementById("mainGrid").removeEventListener("mousedown", startMouseCoordinates, true) - window.removeEventListener("mousemove", updateMouseCoordinates, true) - window.removeEventListener("mouseup", endMouseCoordinates, true) - document.getElementById("mainGrid").addEventListener("touchstart", startTouch, true) - window.addEventListener("touchmove", moveTouch, true) - window.addEventListener("touchend", endTouch, true) -} -function startTouch() { - playerList[event.changedTouches[0].target.customVarID - 1].touchId = event.changedTouches[0].identifier - moveTouch() - singleTap(event.changedTouches[0].target) -} -function moveTouch() { - touchX = [], touchY = [] - for (var i = 0; i < event.touches.length; i ++) { - touchX[i] = event.touches[i].clientX - touchY[i] = event.touches[i].clientY - } -} -function endTouch() { - for (var i = 1; i <= playerList.length; i++) { - if (playerList[i - 1].touchId == event.changedTouches[0].identifier) { - playerList[i - 1].touchId = 0.5 - } - } - moveTouch() -} -//Tap (and click) functions -function singleTap(targetPlayerBox) { -// console.log("Box #" + targetPlayerBox.customVarID + " was pressed") - var playerBoxBounds = targetPlayerBox.getBoundingClientRect() -// console.log("Bounds:") -// console.log(playerBoxBounds) - var tappedPlayerBox = playerList[targetPlayerBox.customVarID - 1] - var lifeAdjust = 0 -// console.log("Rotation: " + tappedPlayerBox.rotation) -// console.log("touchX: " + touchX[touchX.length - 1] + "\ntouchY: " + touchY[touchY.length - 1]) - if (tappedPlayerBox.rotation == 0 || tappedPlayerBox.rotation == 180) { -// console.log(touchX[touchX.length - 1]) -// console.log(playerBoxBounds.width / 2 + playerBoxBounds.left) - if (touchX[touchX.length - 1] > playerBoxBounds.width / 2 + playerBoxBounds.left) { - lifeAdjust = 1 - } else { - lifeAdjust = -1 - } - } else { -// console.log(touchY[touchY.length - 1]) -// console.log(playerBoxBounds.height / 2 + playerBoxBounds.top) - if (touchY[touchY.length - 1] > playerBoxBounds.height / 2 + playerBoxBounds.top) { - lifeAdjust = 1 - } else { - lifeAdjust = -1 - } - } - if (tappedPlayerBox.rotation == 180 || tappedPlayerBox.rotation == 270) { - lifeAdjust *= -1 - } -// console.log(lifeAdjust) - tappedPlayerBox.direction = lifeAdjust - tappedPlayerBox.life += lifeAdjust - drawPlayerBox(tappedPlayerBox.id) - setTimeout(clockCheck.bind(null, tappedPlayerBox, tappedPlayerBox.touchId), 500) -} -function clockCheck(tappedPlayerBox, lastTapID) { - if (tappedPlayerBox.touchId == lastTapID) { - tappedPlayerBox.life += tappedPlayerBox.direction - drawPlayerBox(tappedPlayerBox.id) - if (tappedPlayerBox.holdTime >= 150) { - setTimeout(clockCheck.bind(null, tappedPlayerBox, tappedPlayerBox.touchId), 10) - } else if (tappedPlayerBox.holdTime >= 50) { - setTimeout(clockCheck.bind(null, tappedPlayerBox, tappedPlayerBox.touchId), 50) - } else { - setTimeout(clockCheck.bind(null, tappedPlayerBox, tappedPlayerBox.touchId), 100) - } - tappedPlayerBox.holdTime += 1 - } else { - tappedPlayerBox.holdTime = 0 - } -} -//Hopefully stops the pesky double-tap zoom: -var doubleTouchStartTimestamp = 0 -document.getElementById("mainGrid").addEventListener("touchstart", function() { - var now = +(new Date()) - if (doubleTouchStartTimestamp + 500 > now){ - event.preventDefault() - } - doubleTouchStartTimestamp = now -}) -//Updated :D - -var inputsToRemoveAutocorrect = document.querySelectorAll("input"); - -inputsToRemoveAutocorrect.forEach(input => { - input.setAttribute("autocomplete", "off") - input.setAttribute("autocorrect", "off") - input.setAttribute("autocapitalize", "off") - input.setAttribute("spellcheck", false) - }) diff --git a/OLDdata/site/other/life/menuButton.png b/OLDdata/site/other/life/menuButton.png deleted file mode 100644 index 012267b9..00000000 Binary files a/OLDdata/site/other/life/menuButton.png and /dev/null differ diff --git a/OLDdata/site/other/life/menuExitButton.png b/OLDdata/site/other/life/menuExitButton.png deleted file mode 100644 index 707a98c2..00000000 Binary files a/OLDdata/site/other/life/menuExitButton.png and /dev/null differ diff --git a/OLDdata/site/other/setSymbol/setSymbol.js b/OLDdata/site/other/setSymbol/setSymbol.js deleted file mode 100644 index 1f3a3040..00000000 --- a/OLDdata/site/other/setSymbol/setSymbol.js +++ /dev/null @@ -1,134 +0,0 @@ -var svg = document.getElementById('displaySVG'); -var svgWidth = 500, svgHeight = 500, setSymbolWidth = 300, setSymbolHeight = 300; -var svgStroke = svg.children[1] -var svgFill = svg.children[2] -svg.setAttribute('width', svgWidth); -svg.setAttribute('height', svgHeight); -var imageType = 'svg'; -var canvas = document.getElementById('displayCanvas'); -canvas.width = svgWidth -canvas.height = svgHeight -var context = canvas.getContext('2d'); -var setSymbolImage = new Image(); -setSymbolImage.onload = drawSetSymbol; -var setSymbolPath = ''; -fetchSVGData('https://raw.githubusercontent.com/andrewgioia/Keyrune/master/svg/rtr.svg'); - - -function fetchSVGData(url) { - hideShow(); - var xhttp = new XMLHttpRequest(); - xhttp.onreadystatechange = function() { - if (this.readyState == 4 && xhttp.status != 404) { - imageType = 'svg' - setSymbolPath = xhttp.responseText.split('d="')[1].split('">')[0]; - svgStroke.setAttribute('d', setSymbolPath); - svgFill.setAttribute('d', setSymbolPath); - var svgPathBoundingBox = svgStroke.getBBox(); - if (svgPathBoundingBox.width > svgPathBoundingBox.height) { - scaleAmount = setSymbolWidth / svgPathBoundingBox.width; - } else { - scaleAmount = setSymbolHeight / svgPathBoundingBox.height; - } - svgStroke.setAttribute('transform', 'scale(' + scaleAmount + ') translate(' + parseFloat(((svgWidth - svgPathBoundingBox.width * scaleAmount)/2/scaleAmount)-svgPathBoundingBox.x) + ', ' + parseFloat(((svgHeight - svgPathBoundingBox.height * scaleAmount)/2/scaleAmount)-svgPathBoundingBox.y) + ')'); - svgFill.setAttribute('transform', 'scale(' + scaleAmount + ') translate(' + parseFloat(((svgWidth - svgPathBoundingBox.width * scaleAmount)/2/scaleAmount)-svgPathBoundingBox.x) + ', ' + parseFloat(((svgHeight - svgPathBoundingBox.height * scaleAmount)/2/scaleAmount)-svgPathBoundingBox.y) + ')'); - decorateSVG(); - } - } - xhttp.open('GET', url, true); - xhttp.send(); -} - -function decorateSVG() { - if (imageType == 'svg') { - var setSymbolGradient = document.getElementById('inputSetSymbolRarity').value; - var setSymbolStrokeColor = 'black'; - if (setSymbolGradient == 'Common') { - setSymbolStrokeColor = 'white' - } - svgStroke.setAttribute('stroke', setSymbolStrokeColor) - svgFill.setAttribute('fill', 'url(#grad' + setSymbolGradient + ')'); - } else { - drawSetSymbol() - } -} - -function downloadSetSymbolImage(linkElement) { - linkElement.download = 'setSymbol.' + imageType - if (imageType == 'svg') { - var serializer = new XMLSerializer(); - var source = serializer.serializeToString(svg); - - //add name spaces. - if(!source.match(/^]+xmlns="http\:\/\/www\.w3\.org\/2000\/svg"/)){ - source = source.replace(/^]+"http\:\/\/www\.w3\.org\/1999\/xlink"/)){ - source = source.replace(/^ setSymbolImage.height) { - scaleAmount = setSymbolWidth / setSymbolImage.width; - } else { - scaleAmount = setSymbolHeight / setSymbolImage.height; - } - context.globalCompositeOperation = 'source-over'; - context.clearRect(0, 0, svgWidth, svgHeight); - var x1 = (svgWidth - setSymbolImage.width * scaleAmount) / 2, y1 = (svgHeight - setSymbolImage.height * scaleAmount) / 2, x2 = x1 + setSymbolImage.width * scaleAmount, y2 = y1 + setSymbolImage.height * scaleAmount; - context.drawImage(setSymbolImage, x1, y1, x2 - x1, y2 - y1); - context.globalCompositeOperation = 'source-in'; - var gradient = context.createLinearGradient(x1, y1, x2, y1); - var gradientColors = document.getElementById('grad' + document.getElementById('inputSetSymbolRarity').value).innerHTML.split('stop-color:'); - gradient.addColorStop(0, gradientColors[1].split(';')[0]); - gradient.addColorStop(0.5, gradientColors[2].split(';')[0]); - gradient.addColorStop(1, gradientColors[3].split(';')[0]); - context.fillStyle = gradient; - context.fillRect(x1, y1, x2 - x1, y2 - y1); -} - -function hideShow() { - if (imageType == 'svg') { - if (svg.classList.contains('hidden')) { - svg.classList.remove('hidden'); - } - if (!canvas.classList.contains('hidden')) { - canvas.classList.add('hidden'); - } - } else { - if (canvas.classList.contains('hidden')) { - canvas.classList.remove('hidden'); - } - if (!svg.classList.contains('hidden')) { - svg.classList.add('hidden'); - } - } -} - - diff --git a/OLDdata/site/styles.css b/OLDdata/site/styles.css deleted file mode 100644 index f1917f49..00000000 --- a/OLDdata/site/styles.css +++ /dev/null @@ -1,510 +0,0 @@ -/*fonts*/ -@font-face { - font-family: gothammedium; - src: url("../fonts/gotham-medium.ttf"); -} -@font-face { - font-family: belerenb; - src: url("../fonts/beleren-b.ttf"); -} -@font-face { - font-family: belerenbsc; - src: url("../fonts/beleren-bsc.ttf"); -} -@font-face { - font-family: matrix; - src: url("../fonts/matrix.ttf"); -} -@font-face { - font-family: matrixb; - src: url("../fonts/matrix-b.ttf"); -} -@font-face { - font-family: matrixbsc; - src: url("../fonts/matrix-bsc.ttf"); -} -@font-face { - font-family: mplantin; - src: url("../fonts/mplantin.ttf"); -} -@font-face { - font-family: mplantini; - src: url("../fonts/mplantin-i.ttf"); -} -@font-face { - font-family: goudymedieval; - src: url("../fonts/goudy-medieval.ttf"); -} -:root { - --shifting-color-1: #00c300; - --shifting-color-1-light: #c8ff64; - --light-color: #eee; - --dark-color: #333; - --clear-light: #fff3; - --clear-mid: #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*/ -html { - background-image: linear-gradient(to bottom right, var(--shifting-color-1), var(--shifting-color-1-light)); - background-attachment: fixed; - overflow-x: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - font-size: 16pt; -} -body { - margin: 0; - border: 0; - padding: 0; - background-image: url(images/lowpoly.png); - background-position: left; - background-repeat: no-repeat; - background-attachment: fixed; - background-size: cover; -} -footer { - background-color: var(--dark-color); - padding: 2rem; - font: 0.5em gothammedium; - color: var(--light-color); -} - - -/*Canvas*/ -canvas { - width: calc(100%); - height: auto; - max-width: 750px; - max-height: 1050px; -} -.canvasContainer { - text-align: center; -} - - -/*Grids*/ -.mainGrid { - display: grid; - grid-gap: 1rem; - grid-template-columns: auto; - padding-bottom: 1rem; -} -.splitGrid { - display: grid; - grid-template-columns: 50% 50%; -} -.frameGrid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(3rem, 1fr)); - grid-auto-rows: min-content; -} -.footerGrid { - display: grid; - grid-template-columns: auto; - grid-gap: 1rem; -} -.autoGrid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr)); - grid-auto-rows: min-content; -} - - -/*Misc elements*/ -.download { - text-align: center; - font: 1.5rem belerenbsc; -} -.pageTitle { - font: 3rem belerenbsc; - text-align: center; - padding-top: 0.5rem; -} -.bar { - background-image: url(../images/manaSymbols/63.png); - background-position: center; - background-repeat: no-repeat; - background-size: 100% 2px; - width: 100%; - height: 1rem; -} -.imgPreview { - width: 100%; -} -.layer { - padding: 2rem 2rem; - color: black; - text-align: center; - margin-bottom: 3rem; - background-color: var(--light-color); - background-image: url(images/layerBackground.png); - background-position: center; - background-repeat: no-repeat; -} - - -/*Donate Grid Stuff!*/ -.donateHalfGrid > img { - width: 90%; - margin-bottom: 1rem; -} - - -/*Various text modifications*/ -.title { - text-align: center; - font: 1.5rem belerenbsc; -} -.truncate { - word-break: break-word; -} -.paragraph { - font: mplantin; - text-align: left; -} -.indent { - text-indent: 2rem; -} - - -/*General modifications*/ -.hidden:not(.visibilityOverride) { - display: none; -} -.visible { - display: inline-block; -} -.selectable { - user-select: all; -} - - -/*Hyperlinks*/ -a { - color: black; -} -a:hover { - color: var(--dark-color); -} -footer a { - color: white; -} -footer a:hover { - color: var(--shifting-color-1-light); -} - - -/*Controls the area taken by the canvas*/ -@media screen and (min-width: 905pt) { - /*Makes room for the canvas and controls to be side by side*/ - .mainGrid { - padding: 1rem; - grid-template-columns: calc(750px + 2px) auto; - } -} -@media screen and (min-width: calc(750px + 2rem)) { - /*The canvas can be full size and doesn't have to scale anymore*/ - canvas { - width: 750px; - height: 1050px; - } -} -/*The screen is big enough (larger than phone, likely) to use a larger font*/ -@media screen and (min-width: 375pt) { - html { - font-size: 24pt; - } -} -/*The screen is big enough for the samples to lay side by side. Also, the donate section can be displayed horizontally.*/ -@media screen and (min-width: 750pt) { - .samples { - grid-template-columns: 33.33% 33.33% 33.33% !important; - margin-bottom: 2rem; - } - .samples #sample1 { - width: 90%; - transform: rotate(-10deg) translate(10%, 8%); - } - .samples #sample2 { - z-index: 10; - } - .samples #sample3 { - width: 90%; - transform: rotate(10deg) translate(-10%, 8%); - } - .donateHalfGrid { - display: grid; - grid-template-columns: 16rem auto; - margin-top: 0.5rem; - } - .donateHalfGrid > img { - width: 15rem; - margin-bottom: 0; - } -} -/*These control tooltips for mobile devices vs. desktops/laptops*/ -/*@media screen and (min-width: 1024px) { - .tooltip:hover .tooltiptext { - visibility: visible; - opacity: 1; - } -} -@media screen and (max-width: 1023px) { - .tooltip:focus .tooltiptext, div.tooltip > input:focus + .tooltiptext, div.tooltip > textarea:focus + .tooltiptext { - visibility: visible; - opacity: 1; - } -}*/ -/*Allows the footer to be displayed horizontally on Desktop*/ -@media screen and (min-width: 375pt) { - .footerGrid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(0px, 1fr)); - grid-gap: 1rem; - } -} - - -/*WIP (or I'm too lazy to sort these)*/ -.tabMenu { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr)); - grid-auto-rows: min-content; -} -.tabOption, .textTabButton { - font: 1rem belerenbsc; - text-align: center; - background-color: var(--clear-light); - border: 1px solid var(--light-color); - transition: 0.5s; -} -.tabOption:hover, .textTabButton:hover { - background-color: var(--clear-mid); - transition: 0s; -} -.tabOption.tabOptionSelected, .textTabButton.activeTextTab { - background-color: var(--clear-dark); -} -.tabContent:not(.tabVisible) { - display: none; -} - -.cardMasterElement { - font: 0.75rem belerenbsc; - background-color: var(--clear-light); - border: 1px solid var(--light-color); - border-radius: 0.5rem; - margin-top: 0.25rem; - display: grid; - grid-template-columns: 2rem auto 1rem; - align-items: center; -} -.cardMasterElement > .handle { - cursor: all-scroll; - padding: 1rem 0.5rem; - text-align: center; -} -.cardMasterElement img { - max-height: 1.3rem; - max-width: 1.3rem; - position: absolute; - transform: translate(0.1rem, 0); -} -.cardmasterElement img.cardMasterElementMaskImage { - transform: translate(1.5rem, 0); -} -.cardMasterElement img.cardMasterElementMaskImage.zoom:hover { - transform: translate(1.5rem, 0) scale(3); -} -.cardMasterElementMoving { - background-color: var(--clear-dark); -} -.closeCardMasterElement { - cursor: pointer; - text-align: center; -} - -.frameOption img, .maskOption img, .cardMasterElement img { - -webkit-user-drag: none; - -khtml-user-drag: none; - -moz-user-drag: none; - -o-user-drag: none; - user-drag: none; -} - -#framePicker, #maskPicker { - max-height: 260pt; - overflow-y: auto; - overflow-x: hidden; - border: 1px solid var(--light-color); -} -.frameOption { - height: 3rem; - text-align: center; - width: 100%; -} -.frameOption img { - max-width: 3rem; - max-height: 3rem; -} -.maskOption img { - max-width: 1.5rem; - max-height: 1.5rem; -} -.frameOption.frameOptionSelected, .maskOption.maskOptionSelected { - background-color: var(--clear-dark); -} -.maskOption, .frameOption { - background-color: var(--clear-light); - border: 1px solid var(--light-color); - border-radius: 0.25rem; -} -.maskOption { - font-size: 0.75rem; - margin-left: 0.5rem; - padding: 0.25rem; - width: calc(100% - 1.3rem); -} - - -.textarea { - width: 100%; - min-height: 6rem; - max-height: 18rem; - resize: vertical; -} -.textTabButton { - font-size: 0.75rem; -} -.textTab { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr)); - grid-auto-rows: min-content; -} - -.input, .textarea, .button, .select { - font: 0.75rem mplantin; - background-color: var(--light-color); - border: 1px solid #aaa; - border-radius: 0.2rem; - padding: 0px 0.2rem; - outline: none; - width: 100%; -} -.input.inputOpacity { - width: 2.4rem; -} - - -/* Text code tutorial */ -#textCodeTutorial { - font-size: 0.75rem; - display: grid; - grid-template-columns: 4.5rem auto; -} -#textCodeTutorial > div { - padding: 0.25rem 0; - background-color: var(--clear-mid); -} -#textCodeTutorial > div:nth-child(4n), #textCodeTutorial > div:nth-child(4n - 1) { - background-color: var(--clear-light); -} - - -input[type="checkbox"], .frameOption, .maskOption, .button { - cursor: pointer; -} - - -/* image links */ -.proxyFactoryLimitedGrid { - margin: 0; - max-width: calc(100vw - 4rem); -} -.donateGrid { - margin: 0; - max-width: calc(100vw - 4rem); -} -.imageLinkGrid { - margin-top: 1rem; - display: grid; - justify-items: center; - grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr)); -/* border: 1px solid red;*/ -} -.showBackgroundThrough { - display: inline-block; - background: url(images/lowpoly.png) left top no-repeat; - background-size: cover; - background-attachment: fixed; -} -.imageLink { - width: calc(100% - 1rem); - padding: 0.5rem; - border-radius: 1rem; - display: grid; - grid-template-columns: 4rem auto; - align-items: center; - justify-items: center; - border: 1px solid var(--dark-color); -} -.imageLink:hover { - background-color: var(--clear-darkerer); -} -.imageLink > img { - max-height: 3rem; - max-width: 4rem; -} -.imageLink > div { - word-break: break-all; - font: 1.5rem belerenbsc; -} - -.visitorCount { - display: none; -} -.visitorCount > a > img { - max-height: 0.5rem; -} -.visitorCountTrigger:hover + .visitorCount { - display:inline-block; -} - - - -.samples { - display: grid; - grid-template-columns: 100%; - align-items: center; -} -.samples img { - width: 90%; - margin: 0 auto; - height: auto; -} - -.zoom { - transition: 0.2s; -} -.zoom:hover { - transform: scale(3); - z-index: 100; -} - - - - - - - - - - - diff --git a/OLDdata/versions/expedition.js b/OLDdata/versions/expedition.js deleted file mode 100644 index da7a50b1..00000000 --- a/OLDdata/versions/expedition.js +++ /dev/null @@ -1,40 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (version.currentVersion != "expedition") { - //Name, text, x, y, width, height, font, size, color, other, alternative-function - version.textList = [ - ["Title", "", scale(64), scale(77), scale(630), 0, "belerenb", scale(37), "black", "oneLine=true"], - ["Type", "", scale(64), scale(875), scale(630), 0, "belerenb", scale(37), "black", "oneLine=true"], - ["Rules Text", "", scale(64), scale(729), scale(616), 0, "mplantin", scale(38), "black", "lineSpace=0.97"], - ["Power Toughness", "", scale(587), scale(958), scale(110), 0, "belerenb", scale(38), "black", "oneLine=true,textAlign='center'"] - ] - version.frameIndexToInsert = 7; -} -version.currentVersion = "expedition" -version.artX = scale(56) -version.artY = scale(113) -version.artWidth = scale(630) -version.artHeight = scale(720) -version.setSymbolRight = scale(687) -version.setSymbolVertical = scale(872) -version.setSymbolWidth = scale(90) -version.setSymbolHeight = scale(42) -version.bottomInfoFunction = "m15BottomInfo" -version.manaCostX = scale(653) -version.manaCostY = scale(54) -version.manaCostDiameter = scale(34) -version.manaCostDistance = scale(-38) -version.manaCostDirection = "horizontal" -version.manaCostVersion = "m15" -version.watermarkWidth = scale(520) -version.watermarkHeight = scale(250) -version.watermarkY = scale(800) -version.masksToAdd = ["Title Expedition", "Type Expedition", "Rules Text Expedition", "Pinline Expedition"] -filterFramePicker("frameClassExpedition") -if (!version.addedExpedition) { - version.addedExpedition = true -} - -m15BottomInfo() -finishChangingVersion("data/images/expedition/expeditionCSV.csv") diff --git a/OLDdata/versions/future.js b/OLDdata/versions/future.js deleted file mode 100644 index 8dbae6b3..00000000 --- a/OLDdata/versions/future.js +++ /dev/null @@ -1,67 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (version.currentVersion != "future") { - //Name, text, x, y, width, height, font, size, color, other - version.textList = [ - ["Title", "", scale(131), scale(87), scale(550), 0, "matrixb", scale(45), "white", "oneLine=true"], - ["Type", "", scale(91), scale(615), scale(557), 0, "matrixb", scale(37), "white", "oneLine=true"], - ["Rules Text", "", scale(76), scale(650), scale(594), scale(278), "mplantin", scale(36), "black", "lineSpace=0.97"], - ["Power Toughness", "", scale(574), scale(960), scale(106), 0, "mplantin", scale(42), "white", "oneLine=true,textAlign='center'"] - ]; - if (!version.addedFuture) { - version.addedFuture = true; - version.futureManaSymbolNameList = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "w", "u", "b", "r", "g", "wu", "wb", "ub", "ur", "br", "bg", "rg", "rw", "gw", "gu", "x"] - version.futureManaSymbolImageList = [] - for (var i = 0; i < version.futureManaSymbolNameList.length; i++) { - version.futureManaSymbolImageList[i] = new Image(); - version.futureManaSymbolImageList[i].src = "data/images/manaSymbols/future/" + i + ".png" - } - } - version.frameIndexToInsert = 2; -} -version.currentVersion = "future" -version.artX = scale(64) -version.artY = scale(88) -version.artWidth = scale(648) -version.artHeight = scale(608) -version.setSymbolRight = scale(678) -version.setSymbolVertical = scale(618) -version.setSymbolWidth = scale(40) -version.setSymbolHeight = scale(40) -version.bottomInfoFunction = "futureBottomInfo" -version.manaCostX = scale(91) -version.manaCostY = scale(140) -version.manaCostDiameter = scale(59) -version.manaCostDistance = scale(-38) -version.manaCostDirection = [[scale(91), scale(140)], [scale(61), scale(207)], [scale(46), scale(281)], [scale(46), scale(356)], [scale(59), scale(437)], [scale(106), scale(512)]]; -version.manaCostVersion = "future"; -version.watermarkWidth = scale(520) -version.watermarkHeight = scale(250) -version.watermarkY = scale(800) -version.masksToAdd = ["Border Future", "Icon Future Creature", "Icon Future Instant", "Icon Future Sorcery", "Icon Future Enchantment", "Icon Future Artifact", "Icon Future Land", "Icon Future Multi"]; -filterFramePicker("frameClassFuture"); - - -function futureBottomInfo() { - var colorToFill = "white" - var copyrightShift = 0; - for (var i = 0; i < cardMaster.children.length; i++) { - if (parseInt(cardMaster.children[i].id.replace("frameIndex", "")) >= 0 && frameList[parseInt(cardMaster.children[i].id.replace("frameIndex", ""))].image.src.includes("PT") && !frameList[parseInt(cardMaster.children[i].id.replace("frameIndex", ""))].framePickerClasses.includes("frameClassCustom")) { - copyrightShift = scale(-124); - } - if (parseInt(cardMaster.children[i].id.replace("frameIndex", "")) >= 0 && !frameList[parseInt(cardMaster.children[i].id.replace("frameIndex", ""))].framePickerClasses.includes("frameClassCustom")) { - var frameColorSource = frameList[parseInt(cardMaster.children[i].id.replace("frameIndex", ""))].image.src; - if (frameColorSource.includes("WFull") || frameColorSource.includes("AFull") || frameColorSource.includes("CFull")) { - colorToFill = "black"; - } - } - } - bottomInfoContext.clearRect(0, 0, cardWidth, cardHeight) - bottomInfoContext.writeText("{right}{oldArtistBrush}" + document.getElementById("inputInfoArtist").value, scale(70), scale(952), scale(604) + copyrightShift, 0, "matrixb", scale(26), colorToFill, "oneLine=true") - bottomInfoContext.writeText("\u2122 & \u00a9 " + date.getFullYear() + " Wizards of the Coast *Not For Sale*", scale(70), scale(975), scale(604) + copyrightShift, 0, "mplantin", scale(18), colorToFill, "oneLine=true,textAlign='right'") - cardImageUpdated() -} - setTimeout(futureBottomInfo, 250) - -finishChangingVersion("data/images/future/futureCSV.csv") diff --git a/OLDdata/versions/invention.js b/OLDdata/versions/invention.js deleted file mode 100644 index 55c0651f..00000000 --- a/OLDdata/versions/invention.js +++ /dev/null @@ -1,38 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (version.currentVersion != "invention") { - //Name, text, x, y, width, height, font, size, color, other - version.textList = [ - ["Title", "", scale(64), scale(82), scale(630), 0, "belerenb", scale(37), "black", "oneLine=true"], - ["Type", "", scale(64), scale(618), scale(630), 0, "belerenb", scale(33), "black", "oneLine=true"], - ["Rules Text", "", scale(64), scale(662), scale(616), scale(292), "mplantin", scale(38), "black", "lineSpace=0.97"], - ["Power Toughness", "", scale(587), scale(958), scale(110), 0, "belerenb", scale(38), "black", "oneLine=true,textAlign='center'"]/*, - ["Flip PT", "", scale(588), scale(902), scale(100), 0, "belerenb", 28, "#666", "oneLine=true,textAlign='right'"]*/ - ] - version.frameIndexToInsert = 0; -} -version.currentVersion = "invention" -version.artX = scale(29) -version.artY = scale(28) -version.artWidth = scale(685) -version.artHeight = scale(929) -version.setSymbolRight = scale(684) -version.setSymbolVertical = scale(616) -version.setSymbolWidth = scale(90) -version.setSymbolHeight = scale(41) -version.bottomInfoFunction = "m15BottomInfo" -version.manaCostX = scale(653) -version.manaCostY = scale(59) -version.manaCostDiameter = scale(34) -version.manaCostDistance = scale(-38) -version.manaCostDirection = "horizontal" -version.manaCostVersion = "m15" -version.watermarkWidth = scale(520) -version.watermarkHeight = scale(250) -version.watermarkY = scale(800) -version.masksToAdd = ["Title Invention", "Type Invention", "Rules Text Invention", "Pinline Invention", "Frame Invention", "Border Invention"]; -filterFramePicker("frameClassInvention"); - -finishChangingVersion("data/images/invention/inventionCSV.csv") - diff --git a/OLDdata/versions/inventionTextless.js b/OLDdata/versions/inventionTextless.js deleted file mode 100644 index c4bb83d5..00000000 --- a/OLDdata/versions/inventionTextless.js +++ /dev/null @@ -1,37 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (version.currentVersion != "inventionTextless") { - //Name, text, x, y, width, height, font, size, color, other - version.textList = [ - ["Title", "", scale(64), scale(82), scale(630), 0, "belerenb", scale(37), "black", "oneLine=true"], - ["Type", "", scale(64), scale(898), scale(630), 0, "belerenb", scale(33), "black", "oneLine=true"], - ["Rules Text", "", scale(64), scale(560), scale(616), scale(300), "mplantin", scale(38), "black", "lineSpace=0.97"], - ["Power Toughness", "", scale(587), scale(958), scale(110), 0, "belerenb", scale(38), "black", "oneLine=true,textAlign='center'"] - ] - version.frameIndexToInsert = 0; -} -version.currentVersion = "inventionTextless" -version.artX = scale(29) -version.artY = scale(28) -version.artWidth = scale(685) -version.artHeight = scale(935) -version.setSymbolRight = scale(684) -version.setSymbolVertical = scale(896) -version.setSymbolWidth = scale(90) -version.setSymbolHeight = scale(41) -version.bottomInfoFunction = "m15BottomInfo" -version.manaCostX = scale(653) -version.manaCostY = scale(59) -version.manaCostDiameter = scale(34) -version.manaCostDistance = scale(-38) -version.manaCostDirection = "horizontal" -version.manaCostVersion = "m15" -version.watermarkWidth = scale(520) -version.watermarkHeight = scale(250) -version.watermarkY = scale(800) -version.masksToAdd = ["Border Invention"]; -filterFramePicker("frameClassInvention"); - -finishChangingVersion("data/images/invention/inventionTextlessCSV.csv") - diff --git a/OLDdata/versions/m15.js b/OLDdata/versions/m15.js deleted file mode 100644 index 13d5dfcb..00000000 --- a/OLDdata/versions/m15.js +++ /dev/null @@ -1,54 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (version.currentVersion != "m15") { - //Name, text, x, y, width, height, font, size, color, other - version.textList = [ - ["Title", "", scale(64), scale(83), scale(630), 0, "belerenb", scale(37), "black", "oneLine=true"], - ["Type", "", scale(64), scale(615), scale(630), 0, "belerenb", scale(33), "black", "oneLine=true"], - ["Rules Text", "", scale(64), scale(662), scale(616), scale(292), "mplantin", scale(38), "black", "lineSpace=0.97"], - ["Power Toughness", "", scale(587), scale(958), scale(110), 0, "belerenb", scale(38), "black", "oneLine=true,textAlign='center'"]/*, - ["Flip PT", "", scale(588), scale(902), scale(100), 0, "belerenb", 28, "#666", "oneLine=true,textAlign='right'"]*/ - ] - version.frameIndexToInsert = 5; -} -version.currentVersion = "m15" -version.artX = scale(58) -version.artY = scale(118) -version.artWidth = scale(626) -version.artHeight = scale(458) -version.setSymbolRight = scale(684) -version.setSymbolVertical = scale(614) -version.setSymbolWidth = scale(90) -version.setSymbolHeight = scale(40) -version.bottomInfoFunction = "m15BottomInfo" -version.manaCostX = scale(653) -version.manaCostY = scale(60) -version.manaCostDiameter = scale(34) -version.manaCostDistance = scale(-38) -version.manaCostDirection = "horizontal" -version.manaCostVersion = "m15" -version.watermarkWidth = scale(520) -version.watermarkHeight = scale(250) -version.watermarkY = scale(800) -version.masksToAdd = ["Right Half", "Corners", "Full", "Title", "Type", "Rules Text", "Pinline", "Frame", "Border", "Legend", "Legend With Border", "Box Topper"]; -filterFramePicker("frameClassRegular"); - - -function m15BottomInfo() { - //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(980), 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(1000), scale(375), 0, "gothammedium", scale(17), "white", "oneLine=true") - var copyrightShift = 0; - for (var i = 0; i < cardMaster.children.length; i++) { - if (parseInt(cardMaster.children[i].id.replace("frameIndex", "")) >= 0 && frameList[parseInt(cardMaster.children[i].id.replace("frameIndex", ""))].image.src.includes("PT") && !frameList[parseInt(cardMaster.children[i].id.replace("frameIndex", ""))].framePickerClasses.includes("frameClassCustom")) { - copyrightShift = scale(19); - } - } - bottomInfoContext.writeText(creditColor + "\u2122 & \u00a9 " + date.getFullYear() + " Wizards of the Coast", cardWidth / 2, scale(980 + copyrightShift), scale(322), 0, "mplantin", scale(17), "white", "oneLine=true,textAlign='right'") - cardImageUpdated() -} -// setTimeout(m15BottomInfo, 250) - -finishChangingVersion("data/images/imageCSV.csv") diff --git a/OLDdata/versions/m15extras.js b/OLDdata/versions/m15extras.js deleted file mode 100644 index edf24fde..00000000 --- a/OLDdata/versions/m15extras.js +++ /dev/null @@ -1,37 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (version.currentVersion != "m15") { - //Name, text, x, y, width, height, font, size, color, other - version.textList = [ - ["Title", "", scale(64), scale(83), scale(630), 0, "belerenb", scale(37), "black", "oneLine=true"], - ["Type", "", scale(64), scale(615), scale(630), 0, "belerenb", scale(33), "black", "oneLine=true"], - ["Rules Text", "", scale(64), scale(662), scale(616), scale(292), "mplantin", scale(38), "black", "lineSpace=0.97"], - ["Power Toughness", "", scale(587), scale(958), scale(110), 0, "belerenb", scale(38), "black", "oneLine=true,textAlign='center'"]/*, - ["Flip PT", "", scale(588), scale(902), scale(100), 0, "belerenb", 28, "#666", "oneLine=true,textAlign='right'"]*/ - ] -} -version.currentVersion = "m15" -version.artX = scale(58) -version.artY = scale(118) -version.artWidth = scale(626) -version.artHeight = scale(458) -version.setSymbolRight = scale(684) -version.setSymbolVertical = scale(614) -version.setSymbolWidth = scale(90) -version.setSymbolHeight = scale(40) -version.bottomInfoFunction = "m15BottomInfo" -version.manaCostX = scale(653) -version.manaCostY = scale(60) -version.manaCostDiameter = scale(34) -version.manaCostDistance = scale(-38) -version.manaCostDirection = "horizontal" -version.manaCostVersion = "m15" -version.watermarkWidth = scale(520) -version.watermarkHeight = scale(250) -version.watermarkY = scale(800) -version.masksToAdd = ["Pinline Alternate"] -filterFramePicker("frameClassRegular"); -m15BottomInfo() -finishChangingVersion("data/images/m15Extras/m15ExtrasCSV.csv") - diff --git a/OLDdata/versions/moreMasks.js b/OLDdata/versions/moreMasks.js deleted file mode 100644 index 6f26ebcb..00000000 --- a/OLDdata/versions/moreMasks.js +++ /dev/null @@ -1,16 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (!version.addedMoreMasks) { - version.addedMoreMasks = true; - version.masksToAdd = ["Left Half", "Left Third", "Left Two Thirds", "Middle Third", "Right Two Thirds", "Right Third"]; - for (var i = 0; i < version.masksToAdd.length; i++) { - if (!maskNameList.includes(version.masksToAdd[i])) { - document.getElementById("addFrameToCardMasterButtons").innerHTML += "" - maskNameList[maskNameList.length] = version.masksToAdd[i]; - maskList[maskList.length] = new Image(); - maskList[maskList.length - 1].crossOrigin = "anonymous"; - maskList[maskList.length - 1].src = "data/images/masks/" + version.masksToAdd[i].replace(/ /g, "") + ".png"; - } - } -} diff --git a/OLDdata/versions/planeswalker.js b/OLDdata/versions/planeswalker.js deleted file mode 100644 index 8af06782..00000000 --- a/OLDdata/versions/planeswalker.js +++ /dev/null @@ -1,201 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (version.currentVersion != "planeswalker") { - //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'"] - ] - version.frameIndexToInsert = 5; -} -version.currentVersion = "planeswalker" -version.artX = scale(50) -version.artY = scale(95) -version.artWidth = scale(754) -version.artHeight = scale(853) -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(43) -version.manaCostDiameter = scale(34) -version.manaCostDistance = scale(-39) -version.manaCostDirection = "horizontal" -version.manaCostVersion = "m15" -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") - -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", scale(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 += "
Planeswalker
" - var planeswalkerTab = document.createElement("div") - planeswalkerTab.classList.add("tabContent") - planeswalkerTab.classList.add("mainEditor") - planeswalkerTab.id = "planeswalker" - planeswalkerTab.innerHTML = ` - One: - Two: - Three: - Four:
- For two-ability Planeswalkers only:
- Use War of the Spark ability spacing
- Reverse War of the Spark ability spacing
- Dark ability boxes` - document.getElementById("cardMenu").appendChild(planeswalkerTab) - newCanvas("planeswalker"); - var planeswalkerPlus = new Image() - planeswalkerPlus.crossOrigin = "anonymous"; - planeswalkerPlus.src = "data/images/planeswalker/planeswalkerPlus.png" - var planeswalkerNeutral = new Image() - planeswalkerNeutral.crossOrigin = "anonymous"; - planeswalkerNeutral.src = "data/images/planeswalker/planeswalkerNeutral.png" - var planeswalkerMinus = new Image() - planeswalkerMinus.crossOrigin = "anonymous"; - planeswalkerMinus.src = "data/images/planeswalker/planeswalkerMinus.png" - var lightToDarkPlaneswalker = new Image() - lightToDarkPlaneswalker.crossOrigin = "anonymous"; - lightToDarkPlaneswalker.src = "data/images/planeswalker/abilityLineOdd.png" - var darkToLightPlaneswalker = new Image() - darkToLightPlaneswalker.crossOrigin = "anonymous"; - //darkToLightPlaneswalker.onload = function() {planeswalkerAbilities()} - darkToLightPlaneswalker.src = "data/images/planeswalker/abilityLineEven.png" - var lightToDarkPlaneswalkerDarkened= new Image() - lightToDarkPlaneswalkerDarkened.crossOrigin = "anonymous"; - lightToDarkPlaneswalkerDarkened.src = "data/images/planeswalker/abilityLineOddDarkened.png" - var darkToLightPlaneswalkerDarkened = new Image() - darkToLightPlaneswalkerDarkened.crossOrigin = "anonymous"; - darkToLightPlaneswalkerDarkened.onload = function() {invertPlaneswalkerColors()} - darkToLightPlaneswalkerDarkened.src = "data/images/planeswalker/abilityLineEvenDarkened.png" - setTimeout(planeswalkerAbilities, 1000); - //placeholders: - var darkColor = "#a4a4a4"; - var lightColor = "white"; - var planeswalkerLightToDark = new Image() - var planeswalkerDarkToLight = new Image() - planeswalkerDarkToLight.onload = planeswalkerAbilities() -} - -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(683), scale(756), scale(830), scale(904)]] -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 = lightColor - 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(planeswalkerLightToDark, scale(91), window["ability" + (i + 1) + "Y"] - scale(10) + lastAdjust, scale(599), scale(20)) - } else { - planeswalkerContext.fillStyle = darkColor - 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(planeswalkerDarkToLight, 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 = scale(30) + "px 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() -} -function invertPlaneswalkerColors() { - if (document.getElementById("inputColorInvert").checked) { - darkColor = "#5b5b5b" - lightColor = "black" - planeswalkerLightToDark.src = lightToDarkPlaneswalkerDarkened.src - planeswalkerDarkToLight.src = darkToLightPlaneswalkerDarkened.src - } else { - darkColor = "#a4a4a4" - lightColor = "white" - planeswalkerLightToDark.src = lightToDarkPlaneswalker.src - planeswalkerDarkToLight.src = darkToLightPlaneswalker.src - } - // planeswalkerAbilities(); -} diff --git a/OLDdata/versions/seventh.js b/OLDdata/versions/seventh.js deleted file mode 100644 index b2d43705..00000000 --- a/OLDdata/versions/seventh.js +++ /dev/null @@ -1,46 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (version.currentVersion != "seventh") { - //Name, text, x, y, width, height, font, size, color, other - version.textList = [ - ["Title", "", scale(82), scale(70), scale(630), 0, "goudymedieval", scale(42), "white", "oneLine=true,shadow=2"], - ["Type", "", scale(82), scale(600), scale(630), 0, "mplantin", scale(33), "white", "oneLine=true,shadow=2"], - ["Rules Text", "", scale(97), scale(630), scale(554), scale(292), "mplantin", scale(36), "black", "lineSpace=0.97"], - ["Power Toughness", "", scale(592), scale(959), scale(110), 0, "mplantin", scale(47), "white", "oneLine=true,textAlign='center',shadow=2"] - ]; - version.frameIndexToInsert = 6; -} -version.currentVersion = "seventh" -version.artX = scale(88) -version.artY = scale(102) -version.artWidth = scale(567) -version.artHeight = scale(461) -version.setSymbolRight = scale(663) -version.setSymbolVertical = scale(598) -version.setSymbolWidth = scale(90) -version.setSymbolHeight = scale(39) -version.bottomInfoFunction = "seventhBottomInfo" -version.manaCostX = scale(648) -version.manaCostY = scale(49) -version.manaCostDiameter = scale(36) -version.manaCostDistance = scale(-41) -version.manaCostDirection = "horizontal" -version.manaCostVersion = "seventh" -version.watermarkWidth = scale(520) -version.watermarkHeight = scale(250) -version.watermarkY = scale(800) -version.masksToAdd = ["Rules Text Seventh", "Pinline Seventh", "Frame Seventh", "Border Seventh"]; -filterFramePicker("frameClassSeventh"); - - -function seventhBottomInfo() { - //remember to ctrl+f for 'artistBrushWidth' and adjust that when fixing these values! - bottomInfoContext.clearRect(0, 0, cardWidth, cardHeight) - bottomInfoContext.writeText("{center}{shadow2}Illus: " + document.getElementById("inputInfoArtist").value, scale(46), scale(948), scale(651), 0, "mplantin", scale(29), "white", "oneLine=true") - bottomInfoContext.writeText("{center}\u2122 & \u00a9 " + date.getFullYear() + " Wizards of the Coast *Not For Sale*", scale(46), scale(972), scale(651), 0, "mplantin", scale(18), "white", "oneLine=true,textAlign='right'") - cardImageUpdated() -} - setTimeout(seventhBottomInfo, 250) - -finishChangingVersion("data/images/seventh/seventhCSV.csv") diff --git a/OLDdata/versions/unhinged.js b/OLDdata/versions/unhinged.js deleted file mode 100644 index e4f0509b..00000000 --- a/OLDdata/versions/unhinged.js +++ /dev/null @@ -1,42 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (version.currentVersion != "unhinged") { - //Name, text, x, y, width, height, font, size, color, other - version.textList = [ - ["Title", "", scale(280), scale(56), scale(174), 0, "belerenb", scale(37), "black", "oneLine=true,textAlign='center'"] - ] - version.frameIndexToInsert = 4; -} -version.currentVersion = "unhinged" -version.artX = scale(59) -version.artY = scale(58) -version.artWidth = scale(623) -version.artHeight = scale(864) -version.setSymbolRight = scale(690) -version.setSymbolVertical = scale(967) -version.setSymbolWidth = scale(100) -version.setSymbolHeight = scale(40) -version.bottomInfoFunction = "unhingedBottomInfo" -version.manaCostX = scale(653) -version.manaCostY = scale(60) -version.manaCostDiameter = scale(34) -version.manaCostDistance = scale(-38) -version.manaCostDirection = "horizontal" -version.manaCostVersion = "m15" -version.watermarkWidth = scale(520) -version.watermarkHeight = scale(250) -version.watermarkY = scale(800) -version.masksToAdd = ["Title Unhinged", "Pinline Unhinged", "Frame Unhinged", "Border Unhinged"] -filterFramePicker("frameClassUnhinged") - - -function unhingedBottomInfo() { - bottomInfoContext.clearRect(0, 0, cardWidth, cardHeight) - bottomInfoContext.writeText("{oldArtistBrush}" + document.getElementById("inputInfoArtist").value, scale(60), scale(964), scale(624), 0, "matrixb", scale(26), 'white', "oneLine=true") - bottomInfoContext.writeText("\u2122 & \u00a9 " + date.getFullYear() + " Wizards of the Coast *Not For Sale*", scale(62), scale(987), scale(620), 0, "mplantin", scale(17), 'white', "oneLine=true") - cardImageUpdated() -} -setTimeout(unhingedBottomInfo, 250) - -finishChangingVersion("data/images/unhinged/unhingedCSV.csv") diff --git a/OLDdata/versions/unsanctioned.js b/OLDdata/versions/unsanctioned.js deleted file mode 100644 index c6fb0dd1..00000000 --- a/OLDdata/versions/unsanctioned.js +++ /dev/null @@ -1,36 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -if (version.currentVersion != "unhinged") { - //Name, text, x, y, width, height, font, size, color, other - version.textList = [ - ["Title", "", scale(212), scale(95), scale(320), 0, "belerenb", scale(42), "white", "oneLine=true,textAlign='center'"], - ["Rules Text", "", scale(110), scale(565), scale(524), scale(170), "mplantin", scale(33), "white", "lineSpace=0.97"] - ] - version.frameIndexToInsert = 0; -} -version.currentVersion = "unsanctioned" -version.artX = scale(29) -version.artY = scale(30) -version.artWidth = scale(686) -version.artHeight = scale(924) -version.setSymbolRight = scale(690) -version.setSymbolVertical = scale(967) -version.setSymbolWidth = scale(0) -version.setSymbolHeight = scale(0) -version.bottomInfoFunction = "m15BottomInfo" -version.manaCostX = scale(286) -version.manaCostY = scale(742) -version.manaCostDiameter = scale(172) -version.manaCostDistance = scale(0) -version.manaCostDirection = [[scale(286), scale(742)]] -version.manaCostVersion = "justTheSymbol" -version.watermarkWidth = scale(520) -version.watermarkHeight = scale(250) -version.watermarkY = scale(800) -version.masksToAdd = [] -filterFramePicker("frameClassUnsanctioned") - -setTimeout(m15BottomInfo, 250) - -finishChangingVersion("data/images/unsanctioned/unsanctionedCSV.csv") diff --git a/OLDindex.html b/OLDindex.html deleted file mode 100644 index 056c8c8a..00000000 --- a/OLDindex.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - Card Conjurer - - - - - - -
-
- Card Conjurer -
-
-
- -
-
-
- -
-
Frame
-
Text
-
Art
-
Collector
-
Set Symbol
-
Watermark
-
Advanced
-
Import Card
-
-
-
-
-
-
-
- - -
-
No frame selected
-
-
|||
Text Placeholder
-
|||
Card Art Placeholder
-
-
-
Upload your own frame images:
-
- - -
-
-
-
- - -
-
How To Use Text Codes
-
- Remember to surround each code with curly brackets ("{" and "}"). The codes are not caps sensitive. The following is a list of available text codes and what they do: -
-
-
-
-
-
- - - - -
-
-
X, Y, & Zoom:
- - - -
-
-
-
-
- - - - - -
-
-
-
- - - - - -
-
-
-
- - - - - -
-
-
-
- Click on one of the following buttons to load the described image frame set: -
- -

-

-
-

-

-

-

-

-

- -
- Hide unrelated frames
-
-
-
- Type in a card name to import it! (Only works for regular cards) - - Select which card to import: - -
- -
-
-
- Download -
-
-
-
- -
-
Welcome to Card Conjurer!
-
Card Conjurer is a free program that helps you create custom Magic: The Gathering cards. There are already plenty of custom card makers out there, but what sets Card Conjurer apart from the rest is its live-edit capabilities. You can immediately see the effects of any change you make, which makes card customization easier and overall a better experience. Additionally, in comparison to alternative websites, Card Conjurer offers more frames such as planeswalker, seventh edition, or even kaladesh inventions, and provides much more customizability.
-
-
-
About Me
-
- Hi! My name is Kyle Burton and I am currently a high school student. I used to play Pokemon, but when a friend introduced me to Magic in 2013 I sold my pocket monsters and bought an M14 Intro Pack. Ever since that day, Magic has been my all time favorite game. In addition to playing games, I've always loved technology. During the 2017-18 school year I tought myself how to code Javascript, and a little bit of HTML and CSS. The following summer I created Kyle's Card Imager (KCI). It was pretty simple but I soon began to add more card frames. After a few months I decided to share my creation, so I renamed it Card Conjurer and uploaded it to Github, and then in April of 2019 I bought the domain cardconjurer.com. -
-
-
-
Check Out Some Samples!
-
- loading sample... - loading sample... - loading sample... -
-
-
-
How You Can Help
-
- -
-
I play Commander, which can be expensive for a student! Right now, one of the cards that I'm saving up for is . If you've enjoyed using Card Conjurer, a small donation, even as low as a single cent, would be incredibly appreciated and put to good use!
-
-
-
PayPal
-
-
-
-
-
-
-
Looking for the Original?
-
- This version of the website doesn't have the same features that the original Card Conjurer had. If you want to go back to the old version, click here. -
-
-
-
Have Any Questions?
-
- If you have any questions please don't hesitate to email me at . Even if you made a cool card and want to share, I'd love to see it! -
-
-
-
The Proxy Factory
-
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.
-
-
-
Reddit
-
Discord
-
-
-
-
- - - - - - - diff --git a/askScryfallStyles.css b/askScryfallStyles.css deleted file mode 100644 index dd290be4..00000000 --- a/askScryfallStyles.css +++ /dev/null @@ -1,62 +0,0 @@ -.askScryfallGrid { - display: grid; - grid-template-columns: 1fr 1fr 1fr; - grid-template-rows: auto 90pt auto; - align-items: center; - justify-items: center; -} -.urzaCard { - width: 90vw; - text-align: center; - grid-column: 1 / span 3; -} -.urzaCard > img { - width: 100%; - height: auto; -} -.askScryfallGrid > * { - /*border: 1px solid red;*/ -} -.askScryfallButton { - height: auto; - width: 22vw; - transition: 0.25s; -} -#askScryfallResult { - grid-column: 1 / span 3; - padding: 1rem; - margin: 0.5rem; - background: var(--background-color-contrast); - color: var(--font-color-contrast); - border-radius: 1rem; - font: 1.5rem belerenb; -} -@media screen and (min-width: 864pt) { - .askScryfallGrid { - grid-template-columns: calc(360pt) 1fr 1fr 1fr !important; - grid-template-rows: 92pt auto !important; - } - .urzaCard { - grid-column: 1; - grid-row: 1 / span 2 !important; - } - #askScryfallResult { - grid-column: 2 / span 3 !important; - } -} -@media screen and (min-width: 380pt) { - .urzaCard { - width: 360pt; - } - .askScryfallButton { - height: auto; - width: 100pt; - transition: 0.25s; - } - .askScryfallButton:hover { - width: 110pt; - } - .askScryfallButton:active { - width: 120pt !important; - } -} \ No newline at end of file diff --git a/askscryfall.html b/askscryfall.html index 56fb6ef4..7962959b 100644 --- a/askscryfall.html +++ b/askscryfall.html @@ -1,6 +1,7 @@ + @@ -9,11 +10,73 @@ - CC - Ask Scryfall - +
Ask Scryfall diff --git a/boxGenerator.html b/boxGenerator.html index 1210d975..44efbc3b 100644 --- a/boxGenerator.html +++ b/boxGenerator.html @@ -1,6 +1,7 @@ + diff --git a/creator.html b/creator.html index d3730d51..68f7df19 100644 --- a/creator.html +++ b/creator.html @@ -1,6 +1,7 @@ + diff --git a/data/site/other/setSymbol/setSymbol.js b/data/site/other/setSymbol/setSymbol.js deleted file mode 100644 index 1f3a3040..00000000 --- a/data/site/other/setSymbol/setSymbol.js +++ /dev/null @@ -1,134 +0,0 @@ -var svg = document.getElementById('displaySVG'); -var svgWidth = 500, svgHeight = 500, setSymbolWidth = 300, setSymbolHeight = 300; -var svgStroke = svg.children[1] -var svgFill = svg.children[2] -svg.setAttribute('width', svgWidth); -svg.setAttribute('height', svgHeight); -var imageType = 'svg'; -var canvas = document.getElementById('displayCanvas'); -canvas.width = svgWidth -canvas.height = svgHeight -var context = canvas.getContext('2d'); -var setSymbolImage = new Image(); -setSymbolImage.onload = drawSetSymbol; -var setSymbolPath = ''; -fetchSVGData('https://raw.githubusercontent.com/andrewgioia/Keyrune/master/svg/rtr.svg'); - - -function fetchSVGData(url) { - hideShow(); - var xhttp = new XMLHttpRequest(); - xhttp.onreadystatechange = function() { - if (this.readyState == 4 && xhttp.status != 404) { - imageType = 'svg' - setSymbolPath = xhttp.responseText.split('d="')[1].split('">')[0]; - svgStroke.setAttribute('d', setSymbolPath); - svgFill.setAttribute('d', setSymbolPath); - var svgPathBoundingBox = svgStroke.getBBox(); - if (svgPathBoundingBox.width > svgPathBoundingBox.height) { - scaleAmount = setSymbolWidth / svgPathBoundingBox.width; - } else { - scaleAmount = setSymbolHeight / svgPathBoundingBox.height; - } - svgStroke.setAttribute('transform', 'scale(' + scaleAmount + ') translate(' + parseFloat(((svgWidth - svgPathBoundingBox.width * scaleAmount)/2/scaleAmount)-svgPathBoundingBox.x) + ', ' + parseFloat(((svgHeight - svgPathBoundingBox.height * scaleAmount)/2/scaleAmount)-svgPathBoundingBox.y) + ')'); - svgFill.setAttribute('transform', 'scale(' + scaleAmount + ') translate(' + parseFloat(((svgWidth - svgPathBoundingBox.width * scaleAmount)/2/scaleAmount)-svgPathBoundingBox.x) + ', ' + parseFloat(((svgHeight - svgPathBoundingBox.height * scaleAmount)/2/scaleAmount)-svgPathBoundingBox.y) + ')'); - decorateSVG(); - } - } - xhttp.open('GET', url, true); - xhttp.send(); -} - -function decorateSVG() { - if (imageType == 'svg') { - var setSymbolGradient = document.getElementById('inputSetSymbolRarity').value; - var setSymbolStrokeColor = 'black'; - if (setSymbolGradient == 'Common') { - setSymbolStrokeColor = 'white' - } - svgStroke.setAttribute('stroke', setSymbolStrokeColor) - svgFill.setAttribute('fill', 'url(#grad' + setSymbolGradient + ')'); - } else { - drawSetSymbol() - } -} - -function downloadSetSymbolImage(linkElement) { - linkElement.download = 'setSymbol.' + imageType - if (imageType == 'svg') { - var serializer = new XMLSerializer(); - var source = serializer.serializeToString(svg); - - //add name spaces. - if(!source.match(/^]+xmlns="http\:\/\/www\.w3\.org\/2000\/svg"/)){ - source = source.replace(/^]+"http\:\/\/www\.w3\.org\/1999\/xlink"/)){ - source = source.replace(/^ setSymbolImage.height) { - scaleAmount = setSymbolWidth / setSymbolImage.width; - } else { - scaleAmount = setSymbolHeight / setSymbolImage.height; - } - context.globalCompositeOperation = 'source-over'; - context.clearRect(0, 0, svgWidth, svgHeight); - var x1 = (svgWidth - setSymbolImage.width * scaleAmount) / 2, y1 = (svgHeight - setSymbolImage.height * scaleAmount) / 2, x2 = x1 + setSymbolImage.width * scaleAmount, y2 = y1 + setSymbolImage.height * scaleAmount; - context.drawImage(setSymbolImage, x1, y1, x2 - x1, y2 - y1); - context.globalCompositeOperation = 'source-in'; - var gradient = context.createLinearGradient(x1, y1, x2, y1); - var gradientColors = document.getElementById('grad' + document.getElementById('inputSetSymbolRarity').value).innerHTML.split('stop-color:'); - gradient.addColorStop(0, gradientColors[1].split(';')[0]); - gradient.addColorStop(0.5, gradientColors[2].split(';')[0]); - gradient.addColorStop(1, gradientColors[3].split(';')[0]); - context.fillStyle = gradient; - context.fillRect(x1, y1, x2 - x1, y2 - y1); -} - -function hideShow() { - if (imageType == 'svg') { - if (svg.classList.contains('hidden')) { - svg.classList.remove('hidden'); - } - if (!canvas.classList.contains('hidden')) { - canvas.classList.add('hidden'); - } - } else { - if (canvas.classList.contains('hidden')) { - canvas.classList.remove('hidden'); - } - if (!svg.classList.contains('hidden')) { - svg.classList.add('hidden'); - } - } -} - - diff --git a/index.html b/index.html index d82a4b3c..08b3e94c 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,6 @@ Card Conjurer diff --git a/legal.html b/legal.html index 9c1911fc..1053d342 100644 --- a/legal.html +++ b/legal.html @@ -1,6 +1,7 @@ + diff --git a/old/3.0/images/imageSpreadsheet.csv b/old/3.0/images/imageSpreadsheet.csv deleted file mode 100644 index 542fa5c0..00000000 --- a/old/3.0/images/imageSpreadsheet.csv +++ /dev/null @@ -1,137 +0,0 @@ -version,color,type,displayName,maskVersion,x,y,width,height,secondary,advanced -m15,W,Full,White,m15,0,0,1,1,TRUE,FALSE -m15,U,Full,Blue,m15,0,0,1,1,TRUE,FALSE -m15,B,Full,Black,m15,0,0,1,1,TRUE,FALSE -m15,R,Full,Red,m15,0,0,1,1,TRUE,FALSE -m15,G,Full,Green,m15,0,0,1,1,TRUE,FALSE -m15,M,Full,Multicolored,m15,0,0,1,1,TRUE,FALSE -m15,A,Full,Artifact,m15,0,0,1,1,TRUE,FALSE -m15,C,Full,Colorless,m15,0,0,1,1,TRUE,FALSE -m15,Mask,Frame,,m15,0,0,1,1,TRUE,FALSE -m15,Mask,Pinline,,m15,0,0,1,1,TRUE,FALSE -m15,Mask,Title,,m15,0,0,1,1,TRUE,FALSE -m15,Mask,Type,,m15,0,0,1,1,TRUE,FALSE -m15,Mask,Rules,,m15,0,0,1,1,TRUE,FALSE -none,Mask,Secondary,,none,0,0,1,1,TRUE,FALSE -m15,W,PT,White,m15,0.7613,0.8898,0.183,0.0734,FALSE,FALSE -m15,U,PT,Blue,m15,0.7613,0.8898,0.183,0.0734,FALSE,FALSE -m15,B,PT,Black,m15,0.7613,0.8898,0.183,0.0734,FALSE,FALSE -m15,R,PT,Red,m15,0.7613,0.8898,0.183,0.0734,FALSE,FALSE -m15,G,PT,Green,m15,0.7613,0.8898,0.183,0.0734,FALSE,FALSE -m15,M,PT,Multicolored,m15,0.7613,0.8898,0.183,0.0734,FALSE,FALSE -m15,A,PT,Artifact,m15,0.7613,0.8898,0.183,0.0734,FALSE,FALSE -m15,C,PT,Colorless,m15,0.7613,0.8898,0.183,0.0734,FALSE,FALSE -none,Mask,Corners,,none,0.0267,0.0191,0.952,0.1771,FALSE,FALSE -m15,W,Legendary,White,m15,0.0267,0.0191,0.952,0.1771,TRUE,FALSE -m15,U,Legendary,Blue,m15,0.0267,0.0191,0.952,0.1771,TRUE,FALSE -m15,B,Legendary,Black,m15,0.0267,0.0191,0.952,0.1771,TRUE,FALSE -m15,R,Legendary,Red,m15,0.0267,0.0191,0.952,0.1771,TRUE,FALSE -m15,G,Legendary,Green,m15,0.0267,0.0191,0.952,0.1771,TRUE,FALSE -m15,M,Legendary,Multicolored,m15,0.0267,0.0191,0.952,0.1771,TRUE,FALSE -m15,A,Legendary,Artifact,m15,0.0267,0.0191,0.952,0.1771,TRUE,FALSE -m15,C,Legendary,Colorless,m15,0.0267,0.0191,0.952,0.1771,TRUE,FALSE -none,Mask,Stamp,,none,0.4387,0.9039,0.12,0.0477,FALSE,FALSE -m15,W,RareStamp,White,m15,0.4387,0.9039,0.12,0.0477,TRUE,FALSE -m15,U,RareStamp,Blue,m15,0.4387,0.9039,0.12,0.0477,TRUE,FALSE -m15,B,RareStamp,Black,m15,0.4387,0.9039,0.12,0.0477,TRUE,FALSE -m15,R,RareStamp,Red,m15,0.4387,0.9039,0.12,0.0477,TRUE,FALSE -m15,G,RareStamp,Green,m15,0.4387,0.9039,0.12,0.0477,TRUE,FALSE -m15,M,RareStamp,Multicolored,m15,0.4387,0.9039,0.12,0.0477,TRUE,FALSE -m15,A,RareStamp,Artifact,m15,0.4387,0.9039,0.12,0.0477,TRUE,FALSE -m15,C,RareStamp,Colorless,m15,0.4387,0.9039,0.12,0.0477,TRUE,FALSE -m15,V,PT,Vehicle,m15,0.7613,0.8898,0.183,0.0734,FALSE,FALSE -m15,V,Full,Vehicle,m15,0,0,1,1,TRUE,FALSE -m15,WL,Full,White Land,m15,0,0,1,1,TRUE,FALSE -m15,UL,Full,Blue Land,m15,0,0,1,1,TRUE,FALSE -m15,BL,Full,Black Land,m15,0,0,1,1,TRUE,FALSE -m15,RL,Full,Red Land,m15,0,0,1,1,TRUE,FALSE -m15,GL,Full,Green Land,m15,0,0,1,1,TRUE,FALSE -m15,ML,Full,Multicolored Land,m15,0,0,1,1,TRUE,FALSE -m15,CL,Full,Colorless Land,m15,0,0,1,1,TRUE,FALSE -m15,W,Miracle,White,m15,0.04,0.0286,0.9187,0.4867,TRUE,TRUE -m15,U,Miracle,Blue,m15,0.04,0.0286,0.9187,0.4867,TRUE,TRUE -m15,B,Miracle,Black,m15,0.04,0.0286,0.9187,0.4867,TRUE,TRUE -m15,R,Miracle,Red,m15,0.04,0.0286,0.9187,0.4867,TRUE,TRUE -m15,G,Miracle,Green,m15,0.04,0.0286,0.9187,0.4867,TRUE,TRUE -m15,M,Miracle,Multicolored,m15,0.04,0.0286,0.9187,0.4867,TRUE,TRUE -m15,C,Miracle,Colorless,m15,0.04,0.0286,0.9187,0.4867,TRUE,TRUE -m15,A,Miracle,Artifact,m15,0.04,0.0286,0.9187,0.4867,TRUE,TRUE -m15,W,Nyx,White,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,U,Nyx,Blue,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,B,Nyx,Black,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,R,Nyx,Red,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,G,Nyx,Green,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,M,Nyx,Multicolored,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,A,Nyx,Artifact,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,C,Nyx,Colorless,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,WL,Nyx,White Land,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,UL,Nyx,Blue Land,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,BL,Nyx,Black Land,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,RL,Nyx,Red Land,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,GL,Nyx,Green Land,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,ML,Nyx,Multicolored Land,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,CL,Nyx,Colorless Land,m15,0.04,0.0286,0.92,0.5581,TRUE,TRUE -m15,WD,Full,White (Dark),m15,0,0,1,1,TRUE,TRUE -m15,UD,Full,Blue (Dark),m15,0,0,1,1,TRUE,TRUE -m15,BD,Full,Black (Dark),m15,0,0,1,1,TRUE,TRUE -m15,RD,Full,Red (Dark),m15,0,0,1,1,TRUE,TRUE -m15,GD,Full,Green (Dark),m15,0,0,1,1,TRUE,TRUE -m15,MD,Full,Multicolored (Dark),m15,0,0,1,1,TRUE,TRUE -m15,AD,Full,Artifact (Dark),m15,0,0,1,1,TRUE,TRUE -m15,CD,Full,Colorless (Dark),m15,0,0,1,1,TRUE,TRUE -m15,WLD,Full,White Land (Dark),m15,0,0,1,1,TRUE,TRUE -m15,ULD,Full,Blue Land (Dark),m15,0,0,1,1,TRUE,TRUE -m15,BLD,Full,Black Land (Dark),m15,0,0,1,1,TRUE,TRUE -m15,RLD,Full,Red Land (Dark),m15,0,0,1,1,TRUE,TRUE -m15,GLD,Full,Green Land (Dark),m15,0,0,1,1,TRUE,TRUE -m15,MLD,Full,Multicolored Land (Dark),m15,0,0,1,1,TRUE,TRUE -m15,CLD,Full,Colorless Land (Dark),m15,0,0,1,1,TRUE,TRUE -m15,WD,PT,White (Dark),m15,0.7613,0.8898,0.183,0.0734,FALSE,TRUE -m15,UD,PT,Blue (Dark),m15,0.7613,0.8898,0.183,0.0734,FALSE,TRUE -m15,BD,PT,Black (Dark),m15,0.7613,0.8898,0.183,0.0734,FALSE,TRUE -m15,RD,PT,Red (Dark),m15,0.7613,0.8898,0.183,0.0734,FALSE,TRUE -m15,GD,PT,Green (Dark),m15,0.7613,0.8898,0.183,0.0734,FALSE,TRUE -m15,MD,PT,Multicolored (Dark),m15,0.7613,0.8898,0.183,0.0734,FALSE,TRUE -m15,AD,PT,Artifact (Dark),m15,0.7613,0.8898,0.183,0.0734,FALSE,TRUE -m15,CD,PT,Colorless (Dark),m15,0.7613,0.8898,0.183,0.0734,FALSE,TRUE -m15,W,FlipPT,White,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,U,FlipPT,Blue,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,B,FlipPT,Black,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,R,FlipPT,Red,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,G,FlipPT,Green,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,M,FlipPT,Multicolored,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,A,FlipPT,Artifact,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,C,FlipPT,Colorless,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,WL,FlipPT,White Land,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,UL,FlipPT,Blue Land,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,BL,FlipPT,Black Land,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,RL,FlipPT,Red Land,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,GL,FlipPT,Green Land,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,ML,FlipPT,Multicolorled Land,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,CL,FlipPT,Colorless Land,m15,0.914,0.8352,0.048,0.0457,FALSE,TRUE -m15,W,FlipCircle,White,m15,0.0347,0.044,0.104,0.0676,FALSE,TRUE -m15,U,FlipCircle,Blue,m15,0.0347,0.044,0.104,0.0676,FALSE,TRUE -m15,B,FlipCircle,Black,m15,0.0347,0.044,0.104,0.0676,FALSE,TRUE -m15,R,FlipCircle,Red,m15,0.0347,0.044,0.104,0.0676,FALSE,TRUE -m15,G,FlipCircle,Green,m15,0.0347,0.044,0.104,0.0676,FALSE,TRUE -m15,M,FlipCircle,Multicolored,m15,0.0347,0.044,0.104,0.0676,FALSE,TRUE -m15,A,FlipCircle,Artifact,m15,0.0347,0.044,0.104,0.0676,FALSE,TRUE -m15,C,FlipCircle,Colorless,m15,0.0347,0.044,0.104,0.0676,FALSE,TRUE -m15,Artifact,FlipIcon,Artifact,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Blank,FlipIcon,Blank,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Compass,FlipIcon,Compass,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Creature,FlipIcon,Creature,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Day,FlipIcon,Day,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Eldrazi,FlipIcon,Eldrazi,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Enchantment,FlipIcon,Enchantment,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Instant,FlipIcon,Instant,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Land,FlipIcon,Land,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Moon,FlipIcon,Moon,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Multitype,FlipIcon,Multitype,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Night,FlipIcon,Night,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Planeshift,FlipIcon,Planeshift,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Planeswalker,FlipIcon,Planeswalker,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Sorcery,FlipIcon,Sorcery,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Structure,FlipIcon,Structure,m15,0.052,0.0486,0.08,0.0571,FALSE,TRUE -m15,Mask,Border,m15MaskBorder,m15,0,0,1,1,TRUE,FALSE -m15,Default,Border,m15DefaultBorder,m15,0,0,1,1,TRUE,FALSE \ No newline at end of file diff --git a/old/3.0/images/m15MaskBorder.png b/old/3.0/images/m15MaskBorder.png deleted file mode 100644 index bf57bbfd..00000000 Binary files a/old/3.0/images/m15MaskBorder.png and /dev/null differ diff --git a/old/3.0/images/m15MaskFrame.png b/old/3.0/images/m15MaskFrame.png deleted file mode 100644 index afd61b47..00000000 Binary files a/old/3.0/images/m15MaskFrame.png and /dev/null differ diff --git a/old/3.0/images/m15MaskPinline.png b/old/3.0/images/m15MaskPinline.png deleted file mode 100644 index 8a23389d..00000000 Binary files a/old/3.0/images/m15MaskPinline.png and /dev/null differ diff --git a/old/3.0/images/m15MaskRules.png b/old/3.0/images/m15MaskRules.png deleted file mode 100644 index 7dd26950..00000000 Binary files a/old/3.0/images/m15MaskRules.png and /dev/null differ diff --git a/old/3.0/images/m15MaskTitle.png b/old/3.0/images/m15MaskTitle.png deleted file mode 100644 index 335d0ca5..00000000 Binary files a/old/3.0/images/m15MaskTitle.png and /dev/null differ diff --git a/old/3.0/images/m15MaskType.png b/old/3.0/images/m15MaskType.png deleted file mode 100644 index 78ee4eb9..00000000 Binary files a/old/3.0/images/m15MaskType.png and /dev/null differ diff --git a/old/3.0/images/noneMaskCorners.png b/old/3.0/images/noneMaskCorners.png deleted file mode 100644 index 49c14785..00000000 Binary files a/old/3.0/images/noneMaskCorners.png and /dev/null differ diff --git a/old/3.0/images/noneMaskSecondary.png b/old/3.0/images/noneMaskSecondary.png deleted file mode 100644 index d254490d..00000000 Binary files a/old/3.0/images/noneMaskSecondary.png and /dev/null differ diff --git a/old/3.0/images/noneMaskStamp.png b/old/3.0/images/noneMaskStamp.png deleted file mode 100644 index e0561ee3..00000000 Binary files a/old/3.0/images/noneMaskStamp.png and /dev/null differ diff --git a/old/3.0/index.html b/old/3.0/index.html deleted file mode 100644 index 8df9eaa0..00000000 --- a/old/3.0/index.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - Card Conjurer - - - - - - -
-
- Card Conjurer -
-
-
- -
-
-
-
Frame
-
Text
-
Art
-
Collector
-
Set
-
Watermark
-
-
-
- Select the part of the card frame:
-
-
- -
- Select the color:
-

-
-
- - -
-
-
Preview of the selected image
-
-
-
-
Select the part of the card frame
-
Enter the opacity for the selected part of the frame
-
-
-
-
-
Edit the selected text
-
Enter the mana cost. Include spaces!
-
-
How To Use Text Codes
-
- Remember to surround each code with curly brackets ("{" and "}"). The codes are not caps sensitive. The following is a list of available text codes and what they do: -
-
-
-
-
-
-
Upload an image for the card art
-
Enter a URL for the card art
-
Enter a card name to use its art
-
Select which art to use (from the entered card name)
-
-
-
Placement & Zoom:
-
Shift art to the right
-
Shift art down
-
Art zoom level
-
-
-
-
-
-
Card Number
-
Rarity
-
Set Code
-
Language
-
Artist's Name
(necessary)
-
-
-
-
-
Upload an image for the set symbol
-
Enter a URL for the set symbol
-
Use a set code
(2-3 letters, as seen on the bottom of cards)
-
C, U, R, M, or S
(Not every set has every rarity)
-
Use a random set symbol and rarity
-
-
-
-
-
Upload an image for the watermark
-
Enter a URL for the watermark
-
Use a set code
(2-3 letters, as seen on the bottom of cards)
-
Select the watermark color
-
Select the secondary watermark color
-
-
-
-
-
- Download -
-
-
-
- -
-
Welcome to Card Conjurer!
-
Card Conjurer is a free program that helps you create custom Magic: The Gathering cards. There are already plenty of custom card makers out there, but what sets Card Conjurer apart from the rest is its live-edit capabilities. You can immediatly see the effects of any change you make, which makes card customization easier and overall a better experience.
-
-
-
About Me
-
- Hi! My name is Kyle Burton and I am currently a high school student. I used to play Pokemon, but when a friend introduced me to Magic in 2013 I sold my pocket monsters and bought an M14 Intro Pack. Ever since that day Magic has been my all time favorite game. In addition to playing games, I've always loved technology. During the 2017-18 school year I tought myself how to code Javascript, and a little bit of HTML and CSS. The following summer I created Kyle's Card Imager (KCI). It was pretty simple but I soon began to add more border images like Miracle or Nyx. After a few months I decided to share my creation, so I renamed it Card Conjurer and uploaded it to Github, and then in April of 2019 I bought the domain cardconjurer.com. -
-
-
-
Want More Customization?
-
- 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. -
-
- 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, click here. -
-
- - - - - - - - - - -
-
Have Any Questions?
-
- If you have any questions please don't hesitate to email me at: Even if you made a cool card and want to share, I'd love to see it! -
-
-
- - - - - - diff --git a/old/3.0/m15Version.js b/old/3.0/m15Version.js deleted file mode 100644 index 026f8bd2..00000000 --- a/old/3.0/m15Version.js +++ /dev/null @@ -1,46 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -version.currentVersion = "m15" -version.typeOrder = ["Full", "FullSecondary", "Frame", "FrameSecondary", "Nyx", "NyxSecondary", "Pinline", "PinlineSecondary", "Legendary", "LegendarySecondary", "Title", "TitleSecondary", "Miracle", "MiracleSecondary", "Type", "TypeSecondary", "Rules", "RulesSecondary", "Border", "BorderSecondary", "PT", "RareStamp", "RareStampSecondary", "FlipPT", "FlipCircle", "FlipIcon"] -version.typesAdvanced = ["Nyx", "Miracle", "FlipPT", "FlipCircle", "FlipIcon"] -version.typeNotFull = ["Legendary", "LegendarySecondary", "PT", "RareStamp", "RareStampSecondary", "Nyx", "NyxSecondary", "Miracle", "MiracleSecondary", "FlipPT", "FlipCircle", "FlipIcon", "Border", "BorderSecondary"] -version.artX = cwidth(58) -version.artY = cheight(118) -version.setSymbolRight = cwidth(693) -version.setSymbolVertical = cheight(620) -version.setSymbolWidth = cwidth(77) -version.setSymbolHeight = cheight(42) -version.bottomInfoFunction = "m15BottomInfo" -version.manaCostX = cwidth(656) -version.manaCostY = cheight(62) -version.manaCostDiameter = cwidth(36) -version.manaCostDistance = cwidth(-38) -version.manaCostDirection = "horizontal" -version.rareStampX = cwidth(340) -version.rareStampY = cheight(965) -version.rareStampWidth = cwidth(70) -version.rareStampHeight = cheight(38) -version.watermarkWidth = cwidth(520) -version.watermarkHeight = cheight(250) -version.watermarkY = cheight(815) -//Name, text, x, y, width, height, font, size, color, other -version.textList = [ - ["Title", "", cwidth(62), cheight(87), cwidth(630), 0, "belerenb", 40, "black", "oneLine=true"], - ["Type", "", cwidth(60), cheight(624), cwidth(630), 0, "belerenb", 34, "black", "oneLine=true"], - ["Rules Text", "", cwidth(63), cheight(670), cwidth(624), cheight(292), "mplantin", 38, "black", "lineSpace=0.97"], - ["Power Toughness", "", cwidth(590), cheight(970), cwidth(110), 0, "belerenb", 39, "black", "oneLine=true,textAlign='center'"], - ["Flip PT", "", cwidth(588), cheight(902), cwidth(100), 0, "belerenb", 28, "#666", "oneLine=true,textAlign='right'"] -] -finishChangingVersion() - -function m15BottomInfo() { - //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*", cwidth(46), cheight(993), cwidth(329), 0, "gothammedium", 18, "white", "oneLine=true") - bottomInfoContext.writeText(document.getElementById("inputInfoSet").value + " \u00b7 " + document.getElementById("inputInfoLanguage").value + " {fontsize1}{font:belerenbsc}{artistBrush}" + document.getElementById("inputInfoArtist").value, cwidth(46), cheight(1012), cwidth(375), 0, "gothammedium", 17, "white", "oneLine=true") - var copyrightShift = 19 * cardMasterTypes.includes("PT") - bottomInfoContext.writeText("\u2122 & \u00a9 " + date.getFullYear() + " Wizards of the Coast", cardWidth / 2, cheight(993 + copyrightShift), cwidth(322), 0, "mplantin", 17, "white", "oneLine=true,textAlign='right'") - updateCardCanvas() -} -setTimeout(m15BottomInfo, 250) diff --git a/old/3.0/main.js b/old/3.0/main.js deleted file mode 100644 index 16c8ff76..00000000 --- a/old/3.0/main.js +++ /dev/null @@ -1,865 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -//Define some variables -var cardWidth = 750, cardHeight = 1050 -var version = {} -var date = new Date() -var initiated = false -var suggestedColor = "White" -document.getElementById("inputInfoNumber").value = date.getFullYear() -//Make all the canvases and their contexts -var mainCanvas = document.getElementById("mainCanvas") -mainCanvas.width = cardWidth -mainCanvas.height = cardHeight -var mainContext = mainCanvas.getContext("2d") -var canvasList = ["card", "mask", "image", "text", "paragraph", "line", "transparent", "crop", "bottomInfo", "setSymbol", "watermark", "temp"] -for (var i = 0; i < canvasList.length; i++) { - window[canvasList[i] + "Canvas"] = document.createElement("canvas") - window[canvasList[i] + "Canvas"].width = cardWidth - window[canvasList[i] + "Canvas"].height = cardHeight - window[canvasList[i] + "Context"] = window[canvasList[i] + "Canvas"].getContext("2d") -} -//Create the arrays that keeps track of what parts of the card are what -var cardMasterTypes = [] -var cardMasterImages = [] -//var cardMasterOpacity = [] -var cardMasterOpacityValue = [] -//Mana symbol Array setup -var manaSymbolCodeList = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "w", "u", "b", "r", "g", "2w", "2u", "2b", "2r", "2g", "pw", "pu", "pb", "pr", "pg", "wu", "wb", "ub", "ur", "br", "bg", "rg", "rw", "gw", "gu", "x", "s", "c", "t","untap", "e", "y", "z", "1/2", "inf", "chaos", "plane", "l+", "l-", "l0", "oldtap", "artistbrush", "bar"] -var manaSymbolImageList = [] -//Manually create a few important images -var cardArt = new Image(), setSymbol = new Image(), watermark = new Image() -cardArt.crossOrigin = "anonymous" -setSymbol.crossOrigin = "anonymous" -watermark.crossOrigin = "anonymous" -cardArt.onload = function() { - updateCardCanvas() -} -setSymbol.onload = function() { - updateSetSymbolCanvas() -} -watermark.onload = function() { - updateWatermarkCanvas() -} -//Load the mana symbol images -loadManaSymbolImages() -//Load the CSV full of image data -loadImageSpreadsheet() - - -//============================================// -// Functions // -//============================================// -var nameArray = [] -//Load the CSV full of image data -function loadImageSpreadsheet() { - var xhttp = new XMLHttpRequest() - xhttp.onreadystatechange = function() { - if (this.readyState == 4) { - var rawText = xhttp.responseText.split("\n") - for (var i = 0; i < rawText.length; i ++) { - for (var n = 0; n < rawText[0].split(",").length; n++) { - if (i == 0) { - window[rawText[0].split(",")[n].trim() + "Array"] = [] - } else { - window[rawText[0].split(",")[n].trim() + "Array"][i - 1] = rawText[i].split(",")[n].trim() - } - } - if (i != 0) { - nameArray[i - 1] = versionArray[i - 1] + colorArray[i - 1] + typeArray[i - 1] - } - if (i == rawText.length - 1) { - init() - } - } - } - } - xhttp.open("GET", "data/images/imageSpreadsheet.csv", true) - xhttp.send() -} -//After the csv has been loaded, the init function runs. -function init() { - //Loads the base version (m15) - changeVersionTo("m15") - //Loads all the masks - for (var i = 0; i < colorArray.length; i ++) { - if (colorArray[i] == "Mask") { - loadImage(i) - } - } - //Runs any tests. This should not do anything when published. - setTimeout(testFunction, 100) - initiated = true - textCodeTutorial() - //Checks cookies! - setTimeout(checkCookies, 100) -} -//Loads an image. Only actually loads images the first time each image is loaded, otherwise assigns it. -function loadImage(index, target = "none") { - if (window[nameArray[index]] == undefined) { - window[nameArray[index]] = new customImage(index, target) - } else { - addToCardMaster(index, target) - } -} -//Special image object -function customImage(index, target) { - this.loaded = false - this.index = index - this.image = new Image() - this.image.src = "data/images/" + nameArray[index] + ".png" - this.image.onload = function() { - window[nameArray[index]].loaded = true - addToCardMaster(index, target) - } -} -//Adds an image to the card master. Replaces the previous one if it already existed -function addToCardMaster(index, target) { - if (target == "preview") { - document.getElementById("imgPreview").src = window[nameArray[index]].image.src - return - } - if (document.getElementById("checkboxSecondary").checked) { - target += "Secondary" - } - if ((target == typeArray[index]) || (secondaryArray[index] && target.replace("Secondary", "")) == typeArray[index] || (typeArray[index] == "Full")) { - if (cardMasterTypes.includes(target)) { - cardMasterImages[cardMasterTypes.indexOf(target)] = window[nameArray[index]] - } else { - cardMasterImages[cardMasterTypes.length] = window[nameArray[index]] - cardMasterTypes[cardMasterTypes.length] = target - } - cardMasterUpdated() - } -} -//Runs through all the assigned card images and draws them in -function cardMasterUpdated() { - imageContext.clearRect(0, 0, cardWidth, cardHeight) - for (var i = 0; i < version.typeOrder.length; i ++) { - if (cardMasterTypes.includes(version.typeOrder[i])) { - imageContext.mask(cardMasterTypes.indexOf(version.typeOrder[i])) - } - } -} -//Custom function that draws onto a canvas using masks -CanvasRenderingContext2D.prototype.mask = function(cardMasterIndex) { - maskContext.clearRect(0, 0, cardWidth, cardHeight) - maskContext.globalCompositeOperation = "source-over" - if (cardMasterTypes[cardMasterIndex].includes("Secondary")) { - maskContext.drawImage(window[nameArray[nameArray.indexOf("noneMaskSecondary")]].image, 0, 0, cardWidth, cardHeight) - maskContext.globalCompositeOperation = "source-in" - } - var maskToUse = window[versionArray[cardMasterImages[cardMasterIndex].index] + "Mask" + cardMasterTypes[cardMasterIndex].replace("Secondary", "")] - if (maskToUse != undefined) { - maskContext.drawImage(maskToUse.image, xArray[maskToUse.index] * cardWidth, yArray[maskToUse.index] * cardHeight, widthArray[maskToUse.index] * cardWidth, heightArray[maskToUse.index] * cardHeight) - maskContext.globalCompositeOperation = "source-in" - } - var mainImageIndex = cardMasterImages[cardMasterIndex].index - maskContext.drawImage(cardMasterImages[cardMasterIndex].image, xArray[mainImageIndex] * cardWidth, yArray[mainImageIndex] * cardHeight, widthArray[mainImageIndex] * cardWidth, heightArray[mainImageIndex] * cardHeight) - this.globalAlpha = cardMasterOpacityValue[version.typeOrder.indexOf(cardMasterTypes[cardMasterIndex].replace("Secondary", ""))] / 100 - this.drawImage(maskCanvas, 0, 0, cardWidth, cardHeight) - this.globalAlpha = 1 - if (cardMasterTypes[cardMasterIndex].includes("RareStamp")) { - this.drawImage(window[nameArray[nameArray.indexOf("noneMaskStamp")]].image, version.rareStampX, version.rareStampY, version.rareStampWidth, version.rareStampHeight) - } - updateImageCanvas() -} -//All the canvas functions -function updateImageCanvas() { -// imageContext.globalCompositeOperation = "destination-out" -// for (var i = 0; i < cardMasterOpacity.length; i ++) { -// imageContext.globalAlpha = 1 - cardMasterOpacityValue[i] / 100 -// opacityImage = window[version.currentVersion + "Mask" + cardMasterOpacity[i]].image -// imageContext.drawImage(opacityImage, 0, 0, cardWidth, cardHeight) -// } -// imageContext.globalAlpha = 1 -// imageContext.globalCompositeOperation = "source-over" - updateBottomInfoCanvas() -} -function updateTextCanvas() { - //post processing? - updateCardCanvas() -} -var currentlyWritingText = false -//Rewrites all the text! -function updateText() { - if (!currentlyWritingText) { - currentlyWritingText = true - setTimeout(updateTextInnerShell, 100) - } -} -function updateTextInnerShell() { - version.textList[whichTextIndex][1] = document.getElementById("inputText").value - textContext.clearRect(0, 0, cardWidth, cardHeight) - for (var i = 0; i < version.textList.length; i ++) { - var waitUntilIAmDone = 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]) - updateTextCanvas() - } -} -//figures out the placing of the set symbol -function updateSetSymbolCanvas() { - setSymbolContext.clearRect(0, 0, cardWidth, cardHeight) - var setSymbolWidth, setSymbolHeight, setSymbolX, setSymbolY - if (version.setSymbolWidth / version.setSymbolHeight < setSymbol.width / setSymbol.height) { - //wider - setSymbolWidth = version.setSymbolWidth - setSymbolHeight = version.setSymbolWidth / setSymbol.width * setSymbol.height - setSymbolX = version.setSymbolRight - setSymbolWidth - setSymbolY = version.setSymbolVertical - setSymbolHeight / 2 - } else { - //taller - setSymbolHeight = version.setSymbolHeight - setSymbolWidth = version.setSymbolHeight / setSymbol.height * setSymbol.width - setSymbolX = version.setSymbolRight - setSymbolWidth - setSymbolY = version.setSymbolVertical - setSymbolHeight / 2 - } - setSymbolContext.drawImage(setSymbol, setSymbolX, setSymbolY, setSymbolWidth, setSymbolHeight) - updateCardCanvas() -} -function updateWatermarkCanvas() { - if (document.getElementById("inputWatermarkPrimary").value != "none") { - watermarkContext.clearRect(0, 0, cardWidth, cardHeight) - var watermarkX, watermarkY, watermarkWidth, watermarkHeight - if (version.watermarkWidth / version.watermarkHeight < watermark.width / watermark.height) { - //wider - watermarkWidth = version.watermarkWidth - watermarkHeight = version.watermarkWidth / watermark.width * watermark.height - watermarkX = cardWidth / 2 - watermarkWidth / 2 - watermarkY = version.watermarkY - watermarkHeight / 2 - } else { - //taller - watermarkHeight = version.watermarkHeight - watermarkWidth = version.watermarkHeight / watermark.height * watermark.width - watermarkX = cardWidth / 2 - watermarkWidth / 2 - watermarkY = version.watermarkY - watermarkHeight / 2 - } - watermarkContext.drawImage(watermark, watermarkX, watermarkY, watermarkWidth, watermarkHeight) - watermarkContext.globalCompositeOperation = "source-in" - if (document.getElementById("inputWatermarkPrimary").value != "default") { - watermarkContext.fillStyle = document.getElementById("inputWatermarkPrimary").value - watermarkContext.fillRect(0, 0, cardWidth, cardHeight) - } - if (document.getElementById("inputWatermarkSecondary").value != "none") { - watermarkContext.globalCompositeOperation = "source-atop" - tempContext.clearRect(0, 0, cardWidth, cardHeight) - tempContext.drawImage(window[nameArray[nameArray.indexOf("noneMaskSecondary")]].image, 0, 0, cardWidth, cardHeight) - tempContext.globalCompositeOperation = "source-in" - if (document.getElementById("inputWatermarkSecondary").value == "default") { - tempContext.drawImage(watermark, watermarkX, watermarkY, watermarkWidth, watermarkHeight) - } else { - tempContext.fillStyle = document.getElementById("inputWatermarkSecondary").value - tempContext.fillRect(0, 0, cardWidth, cardHeight) - } - tempContext.globalCompositeOperation = "source-over" - watermarkContext.drawImage(tempCanvas, 0, 0, cardWidth, cardHeight) - } - watermarkContext.globalCompositeOperation = "source-over" - } else { - watermarkContext.clearRect(0, 0, cardWidth, cardHeight) - } - updateCardCanvas() -} -//Does the bottom info function! This can be different depending on the version. -function updateBottomInfoCanvas() { - window[version.bottomInfoFunction]() -} -function updateCardCanvas() { - if (!initiated) { - return - } - //clear it - cardContext.fillStyle = "black" - cardContext.fillRect(0, 0, cardWidth, cardHeight) - //draw the art, frame, text, mana symbols, set symbol, watermark... - cardContext.drawImage(cardArt, version.artX + getValue("inputCardArtX"), version.artY + getValue("inputCardArtY"), cardArt.width * getValue("inputCardArtZoom") / 100, cardArt.height * getValue("inputCardArtZoom") / 100) - cardContext.drawImage(imageCanvas, 0, 0, cardWidth, cardHeight) - cardContext.drawImage(watermarkCanvas, 0, 0, cardWidth, cardHeight) - cardContext.drawImage(textCanvas, 0, 0, cardWidth, cardHeight) - cardContext.drawImage(bottomInfoCanvas, 0, 0, cardWidth, cardHeight) - cardContext.drawManaCost(document.getElementById("inputManaCost").value, version.manaCostX, version.manaCostY, version.manaCostDiameter, version.manaCostDistance, version.manaCostDirection) - cardContext.drawImage(setSymbolCanvas, 0, 0, cardWidth, cardHeight) - //clear the corners - cardContext.globalCompositeOperation = "destination-out" - cardContext.drawImage(window[nameArray[nameArray.indexOf("noneMaskCorners")]].image, 0, 0, cardWidth, cardHeight) - cardContext.globalCompositeOperation = "source-over" - //paste it to the visible canvas - mainContext.clearRect(0, 0, cardWidth, cardHeight) - mainContext.drawImage(cardCanvas, 0, 0, cardWidth, cardHeight) - currentlyWritingText = false -} -//Loads an image in from user input -function userLoadImage() { - loadImage(getSelectedTab("tabSelectColor"), "preview") -} -//Enters an image from user input -function userEnterImage() { - loadImage(getSelectedTab("tabSelectColor"), getSelectedTab("frameType")) -} -//Removes an image from user input -function userRemoveImage() { - var targetToRemove = getSelectedTab("frameType") - if (document.getElementById("checkboxSecondary").checked) { - targetToRemove += "Secondary" - } - if (cardMasterTypes.includes(targetToRemove) && targetToRemove != "Full") { - cardMasterImages.splice(cardMasterTypes.indexOf(targetToRemove), 1) - cardMasterTypes.splice(cardMasterTypes.indexOf(targetToRemove), 1) - cardMasterUpdated() - } -} -//Loads a script -function loadScript(scriptPath){ - var script = document.createElement("script") - script.setAttribute("type","text/javascript") - script.setAttribute("src", scriptPath) - if (typeof script != "undefined") { - document.getElementsByTagName("head")[0].appendChild(script) - } -} -//Adjusts values to the card size -function cwidth(inputWidth) { - return inputWidth / 750 * cardWidth -} -function cheight(inputHeight) { - return inputHeight / 1050 * cardHeight -} -//shortcut for parseInt(document.getElementById("").value) -function getValue(elementId) { - return parseFloat(document.getElementById(elementId).value) -} -//Changes the version -function changeVersionTo(versionToChangeTo) { - loadScript("data/versions/" + versionToChangeTo + "Version.js") -} -function finishChangingVersion() { - hideShowFrameTypes() - for (var i = 0; i < version.textList.length; i ++) { - document.getElementById("inputWhichTextTabs").innerHTML += "
" + version.textList[i][0] + "
" - if (i == 0) { - document.getElementsByClassName("tabButton text")[0].classList.add("activeTab") - } - } - updateText() - updateBottomInfoCanvas() - updateSetSymbolCanvas() -} -function hideShowFrameTypes() { - document.getElementById("frameType").innerHTML = "" - document.getElementById("inputImageTypeOpacity").innerHTML = "" - for (var i = 0; i < version.typeOrder.length; i ++) { - if (!version.typeOrder[i].includes("Secondary") && (!version.typesAdvanced.includes(version.typeOrder[i]) || document.getElementById("checkboxAdvanced").checked)) { - tabSelectAddOption("frameType", version.typeOrder[i], version.typeOrder[i]) - document.getElementById("inputImageTypeOpacity").innerHTML += "" -// cardMasterOpacity[cardMasterOpacity.length] = version.typeOrder[i] - cardMasterOpacityValue[cardMasterOpacityValue.length] = 100 - } - } - document.getElementsByClassName("frameType")[0].className += " activeTab" - hideShowColors(true) - loadOpacityValue() -} -//Hides and shows the options in inputImageColor to match the selected type -function hideShowColors(enter = false) { - document.getElementById("tabSelectColor").innerHTML = "" - var activeTab = false - for (var i = 0; i < versionArray.length; i ++) { - if (versionArray[i] == version.currentVersion && (typeArray[i] == getSelectedTab("frameType").replace("Secondary", "") || (typeArray[i] == "Full" && version.typeNotFull.includes(getSelectedTab("frameType")) == false)) && colorArray[i] != "Mask" && (document.getElementById("checkboxAdvanced").checked || advancedArray[i] == "FALSE")) { - tabSelectAddOption("tabSelectColor", displayNameArray[i], i) - if (displayNameArray[i] == suggestedColor) { - document.getElementsByClassName("tabSelectColor")[document.getElementsByClassName("tabSelectColor").length - 1].className += " activeTab" - activeTab = true - } - } - } - if (!activeTab && document.getElementsByClassName("tabSelectColor").length > 0) { - document.getElementsByClassName("tabSelectColor")[0].className += " activeTab" - } - if (enter) { - userEnterImage() - } - userLoadImage() -} -//Loads the opacity value -function loadOpacityValue() { - document.getElementById("inputOpacityValue").value = cardMasterOpacityValue[version.typeOrder.indexOf(document.getElementById("inputImageTypeOpacity").value)] || 100 -} -function opacityValueUpdated() { - cardMasterOpacityValue[version.typeOrder.indexOf(document.getElementById("inputImageTypeOpacity").value)] = document.getElementById("inputOpacityValue").value - cardMasterUpdated() -} -//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="") { - paragraphContext.clearRect(0, 0, cardWidth, cardHeight) - var textSize = inputTextSize - lineContext.font = textSize + "px " + textFont - lineContext.fillStyle = textColor - var otherParameters = other.split(",") - var outline, shadow = 0, oneLine = false, outlineWidth = 2, textAlign = "left", verticalAlign = true, lineSpace = 1 - for (var i = 0; i < otherParameters.length; i ++) { - eval(otherParameters[i]) - } - lineContext.strokeStyle = outline - lineContext.lineWidth = outlineWidth - var currentLineX = 0 - var currentLineY = textY + textSize * 0.45 - var uniqueSplitter = "9dn57gwbt4sh" - var splitString = text.replace(/ /g, uniqueSplitter + " " + uniqueSplitter).replace(/{/g, uniqueSplitter + "{").replace(/}/g, "}" + uniqueSplitter).split(uniqueSplitter) - splitString[splitString.length] = " " - var lastWordAdded = "" - for (var i = 0; i < splitString.length; i++) { - if (splitString[i] != "") { - var wordToWrite = splitString[i] - var finishLine = false - if (splitString[i].includes("{") && splitString[i].includes("}")) { - //It may be a code - wordToWrite = "" - possibleCodeLower = splitString[i].toLowerCase().replace("{", "").replace("}", "") - if (possibleCodeLower == "line" && !oneLine) { - finishLine = true - currentLineY += textSize * 0.35 - } else if (possibleCodeLower == "linenospace" && ! oneLine) { - finishLine = true - } else if (possibleCodeLower == "bar" || possibleCodeLower == "flavor") { - finishLine = true - var barWidth = manaSymbolImageList[63].width - var barHeight = manaSymbolImageList[63].height - paragraphContext.drawImage(manaSymbolImageList[63], textX + textWidth / 2 - barWidth / 2, currentLineY + textSize * 0.6, barWidth, barHeight) - currentLineY += textSize * 0.8 - if (possibleCodeLower == "flavor") { - lineContext.font = "italic " + (textSize - 3) + "px " + textFont - } - } else if (possibleCodeLower.includes("fontsize")) { - textSize += parseInt(possibleCodeLower.slice(8, possibleCodeLower.length)) - lineContext.font = textSize + "px " + textFont - } else if (possibleCodeLower == "i") { - lineContext.font = "italic " + textSize + "px " + textFont - } else if (possibleCodeLower == "/i") { - lineContext.font = textSize + "px " + textFont - } else if (possibleCodeLower == "center") { - textAlign = "center" - } else if (possibleCodeLower == "right") { - textAlign = "right" - } else if (possibleCodeLower == "left") { - textAlign = "left" - } else if (possibleCodeLower.includes("up")) { - currentLineY -= (parseInt(possibleCodeLower.slice(2, possibleCodeLower.length))) - } else if (possibleCodeLower.includes("down")) { - currentLineY += (parseInt(possibleCodeLower.slice(4, possibleCodeLower.length))) - } else if (possibleCodeLower.includes("left")) { - currentLineX -= (parseInt(possibleCodeLower.slice(4, possibleCodeLower.length))) - } else if (possibleCodeLower.includes("right")) { - currentLineX += (parseInt(possibleCodeLower.slice(5, possibleCodeLower.length))) - } else if (possibleCodeLower == "artistbrush") { - var artistBrushWidth = textSize * 1.2 - lineContext.drawImage(manaSymbolImageList[62], currentLineX, currentLineY - artistBrushWidth * 0.58, artistBrushWidth, artistBrushWidth * 13 / 21) - currentLineX += artistBrushWidth * 1.1 - } else if (possibleCodeLower.includes("fontcolor")) { - lineContext.fillStyle = possibleCodeLower.slice(9, possibleCodeLower.length) - }else if (possibleCodeLower.includes("font")) { - textFont = possibleCodeLower.slice(5, possibleCodeLower.length) - lineContext.font = textSize + "px " + textFont - } else if (manaSymbolCodeList.includes(possibleCodeLower)) { - //THIS HAS TO BE THE LAST ONE - var manaSymbolDiameter = textSize * 0.77 - lineContext.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf(possibleCodeLower)], currentLineX, currentLineY - manaSymbolDiameter * 0.95, manaSymbolDiameter, manaSymbolDiameter) - currentLineX += manaSymbolDiameter * 1.02 - } else { - wordToWrite = splitString[i] - } - } - if (wordToWrite != "" || finishLine == true) { - //We're left with a word. Write it. - var currentWordWidth = lineContext.measureText(wordToWrite).width - if (i == splitString.length - 1) { - //forces the last artificially added space to be too wide, making sure the last line is drawn in. - currentWordWidth = textWidth + 1 - } - if (currentLineX + currentWordWidth > textWidth || finishLine) { - //Finish the line - if (oneLine && i != splitString.length - 1 && inputTextSize > 1) { - lineContext.clearRect(0, 0, cardWidth, cardHeight) - this.writeText(text, textX, textY, textWidth, textHeight, textFont, inputTextSize - 1, textColor, other) - return - } - var alignAdjust = 0 - if (textAlign == "center" || textAlign == "right") { - if (lastWordAdded == " ") { - currentLineX -= textContext.measureText(" ").width - } - if (textAlign == "center") { - alignAdjust = textWidth / 2 - currentLineX / 2 + textX - } else if (textAlign == "right") { - alignAdjust = textWidth + textX - currentLineX - } - } else { - alignAdjust += textX - } - paragraphContext.drawImage(lineCanvas, 0 + alignAdjust, 0, cardWidth, cardHeight) - lineContext.clearRect(0, 0, cardWidth, cardHeight) - currentLineY += textSize * lineSpace - currentLineX = 0 - if (wordToWrite == " ") { - currentWordWidth = 0 - } - } - //Whether or not the current line is finished, write to it. - if (shadow > 0) { - lineContext.fillText(wordToWrite, currentLineX + shadow, currentLineY + shadow) - } - if (outline != undefined) { - lineContext.strokeText(wordToWrite, currentLineX, currentLineY) - } - lineContext.fillText(wordToWrite, currentLineX, currentLineY) - currentLineX += currentWordWidth - lastWordAdded = wordToWrite - } - } - } - verticalAdjust = 0 - if (verticalAlign) { - verticalAdjust = (textHeight + textY - currentLineY + textSize) / 2 - } - this.drawImage(paragraphCanvas, 0, 0 + verticalAdjust, cardWidth, cardHeight) - return "done" -} -//Loads up all the mana symbol images -function loadManaSymbolImages() { - for (var i = 0; i < manaSymbolCodeList.length; i++) { - manaSymbolImageList[i] = new Image() - manaSymbolImageList[i].src = "data/images/manaSymbols/" + i + ".png" - } -} -//Draws a mana cost -CanvasRenderingContext2D.prototype.drawManaCost = function(text, symbolsX, symbolsY, diameter = 50, distance = -50, direction = "horizontal") { - var splitManaCost = text.replace(/{/g, " ").replace(/}/g, " ").split(" ") - var currentSymbolIndex = 0 - var currentX = symbolsX - var currentY = symbolsY - for (var i = splitManaCost.length - 1; i >= 0; i --) { - if (manaSymbolCodeList.includes(splitManaCost[i])) { - if (Array.isArray(direction) && i < direction.length) { - currentX = direction[i][0] - currentY = direction[i][1] - } - this.fillStyle = "black" - this.beginPath() - this.arc(currentX + diameter / 2.1, currentY + diameter / 1.8, diameter / 2, 0, 2 * Math.PI, false) - this.fill() - this.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf(splitManaCost[i])], currentX, currentY, diameter, diameter) - if (direction == "horizontal") { - currentX += distance - } else if (direction == "vertical") { - currentY += distance - } - } - } -} -//Changes the textarea content to whichever text is currently selected for editing -var whichTextIndex = 0 -function changeWhichText() { - for (var i = 0; i < version.textList.length; i ++) { - if (version.textList[i][0] == document.getElementById("inputWhichText").value) { - whichTextIndex = i - } - } - document.getElementById("inputText").value = version.textList[whichTextIndex][1] -} -//Removes all the white pixels in an image -var whiteThreshold = 250 -function whiteToTransparent(targetImage, source = targetImage.src) { - //Create image, size canvas, draw image - var imgTempTarget = new Image() - imgTempTarget.crossOrigin = "anonymous" - imgTempTarget.src = source - imgTempTarget.onload = function() { - if (imgTempTarget.width > 0 && imgTempTarget.height > 0) { - transparentCanvas.width = imgTempTarget.width - transparentCanvas.height = imgTempTarget.height - transparentContext.drawImage(imgTempTarget, 0, 0) - //declare variables - var width = transparentCanvas.width - var height = transparentCanvas.height - var imageData = transparentContext.getImageData(0, 0, transparentCanvas.width, transparentCanvas.height) - var x, y, index - //Go through every pixel and - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - index = (y * width + x) * 4 - if (imageData.data[index] >= whiteThreshold && imageData.data[index + 1] >= whiteThreshold && imageData.data[index + 2] >= whiteThreshold) { - imageData.data[index + 3] = 0 - } - } - } - transparentContext.clearRect(0, 0, width, height) - transparentContext.putImageData(imageData, 0, 0) - targetImage.src = transparentCanvas.toDataURL() - autocrop(targetImage) - } - } -} -//Removes all the whitespace in an image -function autocrop(targetImage, source = targetImage.src) { - //Create image, size canvas, draw image - var imgTempTarget = new Image() - imgTempTarget.crossOrigin = "anonymous" - imgTempTarget.src = source - imgTempTarget.onload = function() { - if (imgTempTarget.width > 0 && imgTempTarget.height > 0) { - cropCanvas.width = imgTempTarget.width - cropCanvas.height = imgTempTarget.height - cropContext.drawImage(imgTempTarget, 0, 0) - //declare variables - var width = cropCanvas.width - var height = cropCanvas.height - var pix = {x:[], y:[]} - var imageData = cropContext.getImageData(0, 0, cropCanvas.width, cropCanvas.height) - var x, y, index - if (imageData.data.length > 4) { - //Go through every pixel and - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - //(y * width + x) * 4 + 3 calculates the index at which the alpha value of the pixel at x, y is given - index = (y * width + x) * 4 + 3 - if (imageData.data[index] > 0) { - //pix is the image object that stores two arrays of x and y coordinates. These stored coordinates are all the visible pixels - pix.x.push(x) - pix.y.push(y) - } - } - } - //sorts the arrays numerically - pix.x.sort(function(a,b){return a-b}) - pix.y.sort(function(a,b){return a-b}) - var n = pix.x.length - 1 - //Finds the difference between the leftmost and rightmost visible pixels, and the topmost and bottommost pixels, cuts out a section of the canvas - width = pix.x[n] - pix.x[0] - height = pix.y[n] - pix.y[0] - var cropped = cropContext.getImageData(pix.x[0], pix.y[0], width + 1, height + 1) - //Resizes the canvas and draws cropped image - cropCanvas.width = width + 1 - cropCanvas.height = height + 1 - cropContext.putImageData(cropped, 0, 0) - //Saves the newly cropped image to the given image - targetImage.src = cropCanvas.toDataURL() - } - } - } -} -//The next several functions are all about loading images! -function uploadImage(event, destination) { - var input = event.target - var reader = new FileReader() - reader.onload = function() { - var dataURL = reader.result - destination.src = dataURL - } - reader.readAsDataURL(input.files[0]) -} -var savedArtList = [], cardArtUrlList = [], cardArtArtistList = [] -function inputCardArtName(cardArtNameInput) { - var xhttp = new XMLHttpRequest() - xhttp.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - savedArtList = this.responseText.split('"art_crop":"') - savedArtList.splice(0, 1) - document.getElementById("inputCardArtNameNumber").max = savedArtList.length - document.getElementById("inputCardArtNameNumber").value = 1 - for (i = 0; i < savedArtList.length; i ++) { - cardArtUrlList[i] = savedArtList[i].split('","border_crop":')[0] - } - for (i = 0; i < savedArtList.length; i ++) { - cardArtArtistList[i] = savedArtList[i].slice(savedArtList[i].indexOf('"artist":"') + 10, savedArtList[i].indexOf('","artist_ids":')) - } - inputCardArtNameNumber(1) - } else if (this.readyState == 4 && this.status == 404) { - alert("Sorry, but we can't seem to find any art for '" + cardArtNameInput + "'") - } - } - xhttp.open("GET", "https://api.scryfall.com/cards/search?order=released&unique=art&q=name%3D" + cardArtNameInput.replace(/ /g, "_"), true) - xhttp.send() -} -function inputCardArtNameNumber(cardArtNameNumberInput) { - cardArt.src = cardArtUrlList[cardArtNameNumberInput - 1] - document.getElementById("inputInfoArtist").value = cardArtArtistList[cardArtNameNumberInput - 1] - updateBottomInfoCanvas() -} -//Downloads the image! -function downloadCardImage(linkElement) { - if (document.getElementById("inputInfoArtist").value.replace(/ /g, "") != "") { - linkElement.download = version.textList[0][1].toLowerCase().replace(/ /g, "_") + ".png" - if (linkElement.download == ".png") { - linkElement.download = "card.png" - } - } else { - event.preventDefault() - alert("You must properly credit an artist before downloading") - } - var cardImageData = cardCanvas.toDataURL() - if (cardImageData == undefined) { - alert("Sorry, it seems that you cannot download your card. Please try using a different browser/device.") - } - linkElement.href = cardImageData -} -//Toggles the visibility of tooltips -function toggleTooltips(revealed = true) { - var tooltipList = document.getElementsByClassName("tooltiptext") - for (var i = 0; i < tooltipList.length; i ++) { - if (revealed) { - tooltipList[i].classList.remove("hidden") - } else { - tooltipList[i].classList.add("hidden") - } - } - setCookie("tooltipsToggled", revealed + "") -} - - - - - -//DELETE: (for testing purposes only) -function testFunction() { - loadScript("data/scripts/setCodeList.js") -} - - - -function setCookie(cookieName, cookieValue, cookieTime = (5 * 365 * 24 * 60 * 60 * 1000)) { //years*days*hours*minutes*seconds*milliseconds - var tempDate = new Date(); - tempDate.setTime(tempDate.getTime() + cookieTime); - var expires = "expires=" + tempDate.toUTCString(); - document.cookie = cookieName + "=" + cookieValue + ";" + expires + ";path=/"; -} -function getCookie(cookieName) { - var name = cookieName + "="; - var cookieArray = document.cookie.split(";"); - for(var i = 0; i < cookieArray.length; i++) { - var tempCookie = cookieArray[i]; - while (tempCookie.charAt(0) == " ") { - tempCookie = tempCookie.substring(1); - } - if (tempCookie.indexOf(name) == 0) { - return tempCookie.substring(name.length, tempCookie.length); - } - } - return ""; -} -function checkCookies() { - if (getCookie("tooltipsToggled") == "false") { - toggleTooltips(false) - document.getElementById("tooltipToggler").checked = false - } - if (getCookie("advancedBorders") == "true") { - document.getElementById("checkboxAdvanced").checked = true - hideShowFrameTypes() - } -} - - -function tabFunction(event, section, target, specialFunction = "none") { - var tabButtons = document.getElementsByClassName("tabButton " + section) - for (var i = 0; i < tabButtons.length; i++) { - tabButtons[i].className = tabButtons[i].className.replace(" activeTab", "") - } - event.currentTarget.className += " activeTab" - if (specialFunction != "none") { - window[specialFunction](event, section, target) - } else { - var tabContents = document.getElementsByClassName("tabContent " + section) - for (var i = 0; i < tabContents.length; i++) { - tabContents[i].className = tabContents[i].className.replace(" displayed", "") - } - document.getElementById(target).className += " displayed" - } -} -function textTabFunction(event, section, target) { - for (var i = 0; i < version.textList.length; i ++) { - if (version.textList[i][0] == target.replace("option", "")) { - whichTextIndex = i - } - } - document.getElementById("inputText").value = version.textList[whichTextIndex][1] -} - - - - - - - - - - - -function tabSelect(event, selectSection) { - var tabSelectButtons = document.getElementsByClassName(selectSection) - for (var i = 0; i < tabSelectButtons.length; i++) { - tabSelectButtons[i].className = tabSelectButtons[i].className.replace(" activeTab", "") - } - event.target.className += " activeTab" - if (selectSection == "frameType") { - hideShowColors() - } else if (selectSection == "tabSelectColor") { - userLoadImage() - suggestedColor = displayNameArray[getSelectedTab("tabSelectColor")] - } -} -function getSelectedTab(selectSection) { - var tabSelectButtons = document.getElementsByClassName(selectSection) - for (var i = 0; i < tabSelectButtons.length; i++) { - if (tabSelectButtons[i].className.includes("activeTab")) { - return tabSelectButtons[i].id - } - } -} -function tabSelectAddOption(tabSection, displayName, tabValue) { - document.getElementById(tabSection).innerHTML += "
" + displayName + "
" -} - - - - - -function textCodeTutorial() { - var textCodeTutorialString = `line-skips to the next line - _linenospace-skips to the next line, but doesn't add spacing - _bar-skips to the next line, and adds the flavor text bar - _flavor-skips to the next line, adds the flavor text bar, and italicizes the following text - _i-italicizes the following text - _/i-removes italics from the following text - _fontsize#-changes the font size to # pixels - _fontcolor#-changes the color to #. Can use color names, or hex codes - _left-justifies text to the left - _center-justifies text to the center - _right-justifies text to the right - _up#-moves the following text # pixels up - _down#-moves the following text # pixels down - _left#-moves the following text # pixels left - _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...` - var textCodeTutorialArray = textCodeTutorialString.split("_") - for (var i = 0; i < textCodeTutorialArray.length; i ++) { - document.getElementById("textCodeTutorial").innerHTML += "
{" + textCodeTutorialArray[i].split("-")[0] + "}
" + textCodeTutorialArray[i].split("-")[1] + "
" - } -} - -function advancedBordersClicked() { - hideShowFrameTypes() - setCookie("advancedBorders", document.getElementById("checkboxAdvanced").checked + "") -} - - - -//textCodeTutorial() - - -/*To do list: -watermarks - - - - - -possibly border color? -*/ diff --git a/old/3.0/styles.css b/old/3.0/styles.css deleted file mode 100644 index 22be5812..00000000 --- a/old/3.0/styles.css +++ /dev/null @@ -1,400 +0,0 @@ -/*fonts*/ -@font-face { - font-family: gothammedium; - src: url("../fonts/gotham-medium.ttf"); -} -@font-face { - font-family: belerenb; - src: url("../fonts/beleren-b.ttf"); -} -@font-face { - font-family: belerenbsc; - src: url("../fonts/beleren-bsc.ttf"); -} -@font-face { - font-family: matrix; - src: url("../fonts/matrix.ttf"); -} -@font-face { - font-family: matrixb; - src: url("../fonts/matrix-b.ttf"); -} -@font-face { - font-family: matrixbsc; - src: url("../fonts/matrix-bsc.ttf"); -} -@font-face { - font-family: mplantin; - src: url("../fonts/mplantin.ttf"); -} -@font-face { - font-family: mplantini; - src: url("../fonts/mplantin-i.ttf"); -} -@font-face { - font-family: goudymedieval; - src: url("../fonts/goudy-medieval.ttf"); -} -:root { - --shifting-color-1: #00c300; - --shifting-color-1-light: #c8ff64; - --light-color: #eee; - --dark-color: #333; - --clear-light: #fff2; - --clear-mid: #fff4; - --clear-dark: #fff6; -} -footer { - background-color: var(--dark-color); - padding: 2.5em; - font: 1.3em gothammedium; - color: var(--light-color); -} -body { - margin: 0px; - background-image: url(images/lowpoly.png); - background-attachment: fixed; - background-size: cover; -} -html { - background-image: linear-gradient(to bottom right, var(--shifting-color-1), var(--shifting-color-1-light)); - background-attachment: fixed; - overflow-x: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - font-size: 8pt; -} -.selectable { - user-select: all; -} -canvas { - width: calc(100%); - height: auto; - max-width: 750px; - max-height: 1050px; -} -.canvasContainer { - text-align: center; -} -.mainGrid { - padding: 0.3em; - display: grid; - grid-gap: 1.5em; - grid-template-columns: auto; - font: 1.6em mplantin; -} -.imageGrid { - display: grid; - grid-template-columns: auto 9em; - min-height: 12.5em; -} -.imgPreview { - width: 100%; -} -.bar { - background-image: url(../images/manaSymbols/63.png); - background-position: center; - background-repeat: no-repeat; - background-size: 100% 2px; - width: 100%; - height: 1em; -} -.cardMenu > div > div:nth-child(1) { -/* border: 1px solid blue;*/ -/* text-align: center;*/ -/* font: 1.5em belerenbsc;*/ -} -.twoGrid { - display: grid; - grid-template-columns: 50% auto; -} -.input, .textarea, .button, .select { - font: 1em mplantin; - background-color: var(--light-color); - border: 1px solid #aaae; - border-radius: 0.2em; - padding: 0px 0.2em; - outline: none; -} -.textarea { - min-height: 6em; - max-height: 18em; - resize: vertical; -} -.select { - background: #fafafa url(../images/manaSymbols/49.png) no-repeat calc(100% - 0.1em) 50%; - background-size: 1em 1em; - -webkit-appearance: none; -} -.autoGrid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(6em, 1fr)); - grid-auto-rows: min-content; -} -.input.file { - padding: 0px; - height: 1.26em; -} -.tooltip { - position: relative; -} -.tooltip .tooltiptext { - visibility: hidden; - background-color: var(--dark-color); - color: var(--light-color); - text-align: center; - border-radius: 5px; - padding: 5px; - top: calc(100% + 5px); - left: 0px; - max-width: calc(100% - 10px); - width: auto; - position: absolute; - z-index: 1; - opacity: 0; - transition: opacity 0.5s; -} -.tooltip .tooltiptext::after { - content: " "; - position: absolute; - bottom: 100%; - left: 50%; - margin-left: -5px; - border-width: 5px; - border-style: solid; - border-color: transparent transparent var(--dark-color) transparent; -} -.tooltip .tooltiptext:hover { - /*visibility: hidden;*/ - opacity: 0; -} -div.tooltip > * { - width: 100%; -} -a { - color: black; -} -a:hover { - color: var(--dark-color); -} -footer a { - color: white; -} -footer a:hover { - color: var(--shifting-color-1-light); -} -.hidden { - display: none; -} -.footerGrid { - display: grid; - grid-template-columns: auto; - grid-gap: 2em; -} -.layer { - padding: 2em 2em; - color: black; - font-size: 2em; - text-align: center; - margin-bottom: 3em; -} -.layer { /*:nth-child(even)*/ - background-color: var(--light-color); - background-image: url(images/layerBackground.png); - background-position: center; - background-repeat: no-repeat; -} -.title { - text-align: center; - font: 1.5em belerenbsc; -} -.pageTitle { - font: 5em belerenbsc; - text-align: center; - padding-top: 0.3em; -} -.paragraph { - font: 1em mplantin; - text-align: left; -} -.indent { - text-indent: 2em; -} -.leftMargin { - margin-left: 2em; -} -.donate > div:hover { - text-decoration: underline; -} -.donate > div { - background-color: var(--clear-light); - border-radius: 2em; - font: 2em belerenbsc; -} -.donate > div > img { - height: 1em; - position: relative; - top: 0.15em; - left: 0.15em; -} - -/*Controls the area taken by the canvas*/ -@media screen and (min-width: 888pt) { - /*Makes room for the canvas and controls to be side by side*/ - .mainGrid { - padding: 1.5em; - grid-template-columns: calc(750px + 2px) auto; - } -} -@media screen and (min-width: calc(750px + 2em)) { - /*The canvas can be full size and doesn't have to scale anymore*/ - canvas { - width: 750px; - height: 1050px; - } -} -/*The screen is big enough (larger than phone, likely) to use a larger font*/ -@media screen and (min-width: 263pt) { - html { - font-size: 10pt; - } -} -/*These control tooltips for mobile devices vs. desktops/laptops*/ -@media screen and (min-width: 1024px) { - .tooltip:hover .tooltiptext { - visibility: visible; - opacity: 1; - } -} -@media screen and (max-width: 1023px) { - .tooltip:focus .tooltiptext, div.tooltip > input:focus + .tooltiptext, div.tooltip > textarea:focus + .tooltiptext { - visibility: visible; - opacity: 1; - } -} -/*The footer can now fit horizontally!*/ -@media screen and (min-width: 375pt) { - .footerGrid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(0px, 1fr)); - grid-gap: 1em; - } -} - - -/*WIP*/ -.tab { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(6.5em, 1fr)); - grid-auto-rows: min-content; -} -.tab.tabSelect { - grid-template-columns: repeat(auto-fit, minmax(8em, 1fr)); -} -.tabButton.tabSelectButton { - font: 1em belerenb; -} -.tabButton { - text-align: center; - background: var(--clear-light); - border: 1px solid var(--light-color); - font: 1.2em belerenbsc; - padding: 0.1em 0em; - transition: 0.33s; -} -.tabButton:hover { - background-color: var(--clear-mid); - transition: 0s; -} -.tabButton.activeTab { - background: var(--clear-dark); - text-decoration: underline; - text-decoration-color: var(--shifting-color-1-light) -} -.tabContent { - display: none; -} -.tabContent.displayed { - display: block; -} - -.download { - text-align: center; - font: 1.5em belerenbsc; -} -.truncate { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - text-indent: 0em; -} -.tab, button, select, option { - cursor: pointer; -} -/*Custom Checkboxes*/ -.realCheckboxContainer { - margin-top: 0.45em -} -.checkboxContainer { - position: relative; - padding-left: 1.5em; - padding-top: 0.25em; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.checkboxContainer input { - position: absolute; - opacity: 0; - height: 0; - width: 0; -} -.checkmark { - position: absolute; - top: 0; - left: 0; - height: 1.2em; - width: 1.2em; - transition: 0.33s; - background-color: var(--clear-light); - border: 1px solid var(--light-color) -} -.checkboxContainer:hover input ~ .checkmark { - background-color: var(--clear-dark); -} -.checkboxContainer input:checked ~ .checkmark { - background-color: var(--dark-color); -} -.checkmark:after { - content: "X"; - font: 1.2em gothammedium; - color: white; - position: absolute; - opacity: 0; - transition: 0.33s; -} -.checkboxContainer input:checked ~ .checkmark:after { - opacity: 1; -} -.checkboxContainer .checkmark:after { - left: 0.15em; - top: -0.1em; -} -#textCodeTutorial { - display: grid; - grid-template-columns: 6.5em auto; - /*padding: 0.5em;*/ -} -#textCodeTutorial > div { - padding: 0.25em 0; - background-color: var(--clear-mid); -} -#textCodeTutorial > div:nth-child(4n), #textCodeTutorial > div:nth-child(4n - 1) { - background-color: var(--clear-light); -} - - diff --git a/old/Disclaimer.txt b/old/Disclaimer.txt deleted file mode 100644 index a1884b65..00000000 --- a/old/Disclaimer.txt +++ /dev/null @@ -1,22 +0,0 @@ -Disclaimer: ------------------------------------------------------------------------ -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. ------------------------------------------------------------------------ -Some fonts and/or images used in this program have been gathered from -the following sources under the Creative Commons BY-NC-SA 2.5 License: - - MTG Gamepedia (https://mtg.gamepedia.com/Main_Page) - Magic Set Editor (http://magicseteditor.boards.net/) - -Changes have been made to some of the images. Card Conjurer is not -endorsed by these sources. ------------------------------------------------------------------------ -Any other uploaded artwork is property of the original artist, and it -is at the discretion of the users that these images are properly -credited. ------------------------------------------------------------------------ -CC BY-NC-SA 2.5 License: - https://creativecommons.org/licenses/by-nc-sa/2.5/ \ No newline at end of file diff --git a/old/TermsOfUse.txt b/old/TermsOfUse.txt deleted file mode 100644 index 026a1231..00000000 --- a/old/TermsOfUse.txt +++ /dev/null @@ -1,8 +0,0 @@ -Terms of Use: - -This program is for creative purposes only. It is intended only -to be used for personal reasons, and not for commercial -production or sale. - -Users must properly credit any artwork that they upload to the -program. \ No newline at end of file diff --git a/old/data/borders/cardMask.png b/old/data/borders/cardMask.png deleted file mode 100644 index abf14c74..00000000 Binary files a/old/data/borders/cardMask.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/black/frame.png b/old/data/borders/fullArtLandM15/black/frame.png deleted file mode 100644 index b17ddc0b..00000000 Binary files a/old/data/borders/fullArtLandM15/black/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/blue/frame.png b/old/data/borders/fullArtLandM15/blue/frame.png deleted file mode 100644 index f285af04..00000000 Binary files a/old/data/borders/fullArtLandM15/blue/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/border.js b/old/data/borders/fullArtLandM15/border.js deleted file mode 100644 index b694d82a..00000000 --- a/old/data/borders/fullArtLandM15/border.js +++ /dev/null @@ -1,28 +0,0 @@ -//============================================// -// Full Art Land M15 Border // -//============================================// -//General Booleans -cardData.miracle = false -cardData.nyx = false -cardData.legendary = false -cardData.creature = false -cardData.rulesBox = false -cardData.rareStamp = false -//Specific Values -cardData.cardArtX = 60 -cardData.cardArtY = 120 -cardData.typeY = cheight(903) -cardData.setSymbolY = cheight(893) -cardData.watermarkY = cheight(886) -cardData.watermarkWidth = cwidth(110) -cardData.watermarkHeight = cheight(110) -//Images -imgArtMask.load("data/borders/fullArtLandM15/imgArtMask.png") -imgFrameMask.load("data/borders/fullArtLandM15/imgFrameMask.png") -imgPinlineMask.load("data/borders/fullArtLandM15/imgPinlineMask.png") -imgTitleMask.load("data/borders/fullArtLandM15/imgTitleMask.png") -imgTypeMask.load("data/borders/fullArtLandM15/imgTypeMask.png") -//Loads the Colors -loadColors("white-White,blue-Blue,black-Black,red-Red,green-Green,gold-Gold,colorless-Colorless") -//Finishes loading the border style -finishChangingBorder() \ No newline at end of file diff --git a/old/data/borders/fullArtLandM15/colorless/frame.png b/old/data/borders/fullArtLandM15/colorless/frame.png deleted file mode 100644 index 9b94c525..00000000 Binary files a/old/data/borders/fullArtLandM15/colorless/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/gold/frame.png b/old/data/borders/fullArtLandM15/gold/frame.png deleted file mode 100644 index d4eee5b3..00000000 Binary files a/old/data/borders/fullArtLandM15/gold/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/green/frame.png b/old/data/borders/fullArtLandM15/green/frame.png deleted file mode 100644 index c3fe2ec2..00000000 Binary files a/old/data/borders/fullArtLandM15/green/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/imgArtMask.png b/old/data/borders/fullArtLandM15/imgArtMask.png deleted file mode 100644 index 56e648d1..00000000 Binary files a/old/data/borders/fullArtLandM15/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/imgFrameMask.png b/old/data/borders/fullArtLandM15/imgFrameMask.png deleted file mode 100644 index b6ec226f..00000000 Binary files a/old/data/borders/fullArtLandM15/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/imgPinlineMask.png b/old/data/borders/fullArtLandM15/imgPinlineMask.png deleted file mode 100644 index 14107241..00000000 Binary files a/old/data/borders/fullArtLandM15/imgPinlineMask.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/imgTitleMask.png b/old/data/borders/fullArtLandM15/imgTitleMask.png deleted file mode 100644 index 7fcf1da7..00000000 Binary files a/old/data/borders/fullArtLandM15/imgTitleMask.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/imgTypeMask.png b/old/data/borders/fullArtLandM15/imgTypeMask.png deleted file mode 100644 index 79ffc8cf..00000000 Binary files a/old/data/borders/fullArtLandM15/imgTypeMask.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/red/frame.png b/old/data/borders/fullArtLandM15/red/frame.png deleted file mode 100644 index b763f3d0..00000000 Binary files a/old/data/borders/fullArtLandM15/red/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandM15/white/frame.png b/old/data/borders/fullArtLandM15/white/frame.png deleted file mode 100644 index 7159152d..00000000 Binary files a/old/data/borders/fullArtLandM15/white/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/black/frame.png b/old/data/borders/fullArtLandUnstable/black/frame.png deleted file mode 100644 index 3f6f3682..00000000 Binary files a/old/data/borders/fullArtLandUnstable/black/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/black/stamp.png b/old/data/borders/fullArtLandUnstable/black/stamp.png deleted file mode 100644 index 0a7486b7..00000000 Binary files a/old/data/borders/fullArtLandUnstable/black/stamp.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/blue/frame.png b/old/data/borders/fullArtLandUnstable/blue/frame.png deleted file mode 100644 index 1369273b..00000000 Binary files a/old/data/borders/fullArtLandUnstable/blue/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/blue/stamp.png b/old/data/borders/fullArtLandUnstable/blue/stamp.png deleted file mode 100644 index 07abb2a0..00000000 Binary files a/old/data/borders/fullArtLandUnstable/blue/stamp.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/border.js b/old/data/borders/fullArtLandUnstable/border.js deleted file mode 100644 index b5938be1..00000000 --- a/old/data/borders/fullArtLandUnstable/border.js +++ /dev/null @@ -1,35 +0,0 @@ -//============================================// -// Full Art Land Unstable Border // -//============================================// -//General Booleans -cardData.miracle = false -cardData.nyx = false -cardData.legendary = false -cardData.creature = false -cardData.rulesBox = false -cardData.titleTypeBoxes = false -cardData.transparency = true -//Specific Values -cardData.cardArtX = 0 -cardData.cardArtY = 0 -cardData.titleAlignment = "center" -cardData.titleX = cwidth(50) -cardData.titleWidth = cwidth(650) -cardData.titleY = cheight(48) -cardData.titleRight = cwidth(999) -cardData.manaSymbolDirection = "none" -document.getElementById("inputTitleColor").value = "#ffffff" -imgRareStamp.load("none", cwidth(329), cheight(949), cwidth(90), cheight(50)) -imgRareStampRight.load("none", cwidth(329), cheight(949), cwidth(90), cheight(50)) -cardData.setSymbolX = cardWidth / 2 -cardData.setSymbolY = cheight(80) -cardData.setSymbolAlignment = "center" -//Images -imgArtMask.load("data/borders/fullArtLandUnstable/imgArtMask.png") -imgBorderMask.load("data/borders/fullArtLandUnstable/imgBorderMask.png") -imgFrameMask.load("data/borders/fullArtLandUnstable/imgFrameMask.png") -imgPinlineMask.load("data/borders/fullArtLandUnstable/imgPinlineMask.png") -//Loads the Colors -loadColors("white-White,blue-Blue,black-Black,red-Red,green-Green,gold-Gold,colorless-Colorless") -//Finishes loading the border style -finishChangingBorder() \ No newline at end of file diff --git a/old/data/borders/fullArtLandUnstable/colorless/frame.png b/old/data/borders/fullArtLandUnstable/colorless/frame.png deleted file mode 100644 index d8f2d8df..00000000 Binary files a/old/data/borders/fullArtLandUnstable/colorless/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/colorless/stamp.png b/old/data/borders/fullArtLandUnstable/colorless/stamp.png deleted file mode 100644 index 8ca208dd..00000000 Binary files a/old/data/borders/fullArtLandUnstable/colorless/stamp.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/gold/frame.png b/old/data/borders/fullArtLandUnstable/gold/frame.png deleted file mode 100644 index 8e658eca..00000000 Binary files a/old/data/borders/fullArtLandUnstable/gold/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/gold/stamp.png b/old/data/borders/fullArtLandUnstable/gold/stamp.png deleted file mode 100644 index 48c7754f..00000000 Binary files a/old/data/borders/fullArtLandUnstable/gold/stamp.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/green/frame.png b/old/data/borders/fullArtLandUnstable/green/frame.png deleted file mode 100644 index 27fa9d4b..00000000 Binary files a/old/data/borders/fullArtLandUnstable/green/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/green/stamp.png b/old/data/borders/fullArtLandUnstable/green/stamp.png deleted file mode 100644 index 3e8266eb..00000000 Binary files a/old/data/borders/fullArtLandUnstable/green/stamp.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/imgArtMask.png b/old/data/borders/fullArtLandUnstable/imgArtMask.png deleted file mode 100644 index 25e0793e..00000000 Binary files a/old/data/borders/fullArtLandUnstable/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/imgBorderMask.png b/old/data/borders/fullArtLandUnstable/imgBorderMask.png deleted file mode 100644 index c86b31c8..00000000 Binary files a/old/data/borders/fullArtLandUnstable/imgBorderMask.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/imgFrameMask.png b/old/data/borders/fullArtLandUnstable/imgFrameMask.png deleted file mode 100644 index d322726b..00000000 Binary files a/old/data/borders/fullArtLandUnstable/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/imgPinlineMask.png b/old/data/borders/fullArtLandUnstable/imgPinlineMask.png deleted file mode 100644 index dfc09863..00000000 Binary files a/old/data/borders/fullArtLandUnstable/imgPinlineMask.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/red/frame.png b/old/data/borders/fullArtLandUnstable/red/frame.png deleted file mode 100644 index b3b04492..00000000 Binary files a/old/data/borders/fullArtLandUnstable/red/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/red/stamp.png b/old/data/borders/fullArtLandUnstable/red/stamp.png deleted file mode 100644 index 60acc79e..00000000 Binary files a/old/data/borders/fullArtLandUnstable/red/stamp.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/white/frame.png b/old/data/borders/fullArtLandUnstable/white/frame.png deleted file mode 100644 index bf0b6391..00000000 Binary files a/old/data/borders/fullArtLandUnstable/white/frame.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/white/ref.png b/old/data/borders/fullArtLandUnstable/white/ref.png deleted file mode 100644 index b9d28403..00000000 Binary files a/old/data/borders/fullArtLandUnstable/white/ref.png and /dev/null differ diff --git a/old/data/borders/fullArtLandUnstable/white/stamp.png b/old/data/borders/fullArtLandUnstable/white/stamp.png deleted file mode 100644 index 96e37de9..00000000 Binary files a/old/data/borders/fullArtLandUnstable/white/stamp.png and /dev/null differ diff --git a/old/data/borders/identity.png b/old/data/borders/identity.png deleted file mode 100644 index e18d631a..00000000 Binary files a/old/data/borders/identity.png and /dev/null differ diff --git a/old/data/borders/imgArtistBrush.png b/old/data/borders/imgArtistBrush.png deleted file mode 100644 index e9583ee8..00000000 Binary files a/old/data/borders/imgArtistBrush.png and /dev/null differ diff --git a/old/data/borders/imgBar.png b/old/data/borders/imgBar.png deleted file mode 100644 index f3b4c60c..00000000 Binary files a/old/data/borders/imgBar.png and /dev/null differ diff --git a/old/data/borders/imgBlank.png b/old/data/borders/imgBlank.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/imgBlank.png and /dev/null differ diff --git a/old/data/borders/imgCornerMask.png b/old/data/borders/imgCornerMask.png deleted file mode 100644 index 49c14785..00000000 Binary files a/old/data/borders/imgCornerMask.png and /dev/null differ diff --git a/old/data/borders/imgFoil.png b/old/data/borders/imgFoil.png deleted file mode 100644 index 4c1d7624..00000000 Binary files a/old/data/borders/imgFoil.png and /dev/null differ diff --git a/old/data/borders/imgMultiGradient.png b/old/data/borders/imgMultiGradient.png deleted file mode 100644 index d254490d..00000000 Binary files a/old/data/borders/imgMultiGradient.png and /dev/null differ diff --git a/old/data/borders/imgStamp.png b/old/data/borders/imgStamp.png deleted file mode 100644 index 355f6fa4..00000000 Binary files a/old/data/borders/imgStamp.png and /dev/null differ diff --git a/old/data/borders/imgWhite.png b/old/data/borders/imgWhite.png deleted file mode 100644 index dc5a130e..00000000 Binary files a/old/data/borders/imgWhite.png and /dev/null differ diff --git a/old/data/borders/m15/artifact/frame.png b/old/data/borders/m15/artifact/frame.png deleted file mode 100644 index 8fa95d51..00000000 Binary files a/old/data/borders/m15/artifact/frame.png and /dev/null differ diff --git a/old/data/borders/m15/artifact/legendary.png b/old/data/borders/m15/artifact/legendary.png deleted file mode 100644 index 988f7c73..00000000 Binary files a/old/data/borders/m15/artifact/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/artifact/miracle.png b/old/data/borders/m15/artifact/miracle.png deleted file mode 100644 index 730d5013..00000000 Binary files a/old/data/borders/m15/artifact/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/artifact/nyx.png b/old/data/borders/m15/artifact/nyx.png deleted file mode 100644 index 22a2b300..00000000 Binary files a/old/data/borders/m15/artifact/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/artifact/pt.png b/old/data/borders/m15/artifact/pt.png deleted file mode 100644 index 15d680e6..00000000 Binary files a/old/data/borders/m15/artifact/pt.png and /dev/null differ diff --git a/old/data/borders/m15/artifact/stamp.png b/old/data/borders/m15/artifact/stamp.png deleted file mode 100644 index 99a1fb1d..00000000 Binary files a/old/data/borders/m15/artifact/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/black/frame.png b/old/data/borders/m15/black/frame.png deleted file mode 100644 index f5bc1d60..00000000 Binary files a/old/data/borders/m15/black/frame.png and /dev/null differ diff --git a/old/data/borders/m15/black/legendary.png b/old/data/borders/m15/black/legendary.png deleted file mode 100644 index 282b3ba0..00000000 Binary files a/old/data/borders/m15/black/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/black/miracle.png b/old/data/borders/m15/black/miracle.png deleted file mode 100644 index 5855c9aa..00000000 Binary files a/old/data/borders/m15/black/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/black/nyx.png b/old/data/borders/m15/black/nyx.png deleted file mode 100644 index 5cf62019..00000000 Binary files a/old/data/borders/m15/black/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/black/pt.png b/old/data/borders/m15/black/pt.png deleted file mode 100644 index f4cbdac8..00000000 Binary files a/old/data/borders/m15/black/pt.png and /dev/null differ diff --git a/old/data/borders/m15/black/stamp.png b/old/data/borders/m15/black/stamp.png deleted file mode 100644 index eb8a2458..00000000 Binary files a/old/data/borders/m15/black/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/blackLand/frame.png b/old/data/borders/m15/blackLand/frame.png deleted file mode 100644 index 7740dbf3..00000000 Binary files a/old/data/borders/m15/blackLand/frame.png and /dev/null differ diff --git a/old/data/borders/m15/blackLand/legendary.png b/old/data/borders/m15/blackLand/legendary.png deleted file mode 100644 index 93738efb..00000000 Binary files a/old/data/borders/m15/blackLand/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/blackLand/miracle.png b/old/data/borders/m15/blackLand/miracle.png deleted file mode 100644 index 5855c9aa..00000000 Binary files a/old/data/borders/m15/blackLand/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/blackLand/nyx.png b/old/data/borders/m15/blackLand/nyx.png deleted file mode 100644 index 5cf62019..00000000 Binary files a/old/data/borders/m15/blackLand/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/blackLand/pt.png b/old/data/borders/m15/blackLand/pt.png deleted file mode 100644 index f4cbdac8..00000000 Binary files a/old/data/borders/m15/blackLand/pt.png and /dev/null differ diff --git a/old/data/borders/m15/blackLand/stamp.png b/old/data/borders/m15/blackLand/stamp.png deleted file mode 100644 index eb8a2458..00000000 Binary files a/old/data/borders/m15/blackLand/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/blue/frame.png b/old/data/borders/m15/blue/frame.png deleted file mode 100644 index 3b4ef97d..00000000 Binary files a/old/data/borders/m15/blue/frame.png and /dev/null differ diff --git a/old/data/borders/m15/blue/legendary.png b/old/data/borders/m15/blue/legendary.png deleted file mode 100644 index c4014aba..00000000 Binary files a/old/data/borders/m15/blue/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/blue/miracle.png b/old/data/borders/m15/blue/miracle.png deleted file mode 100644 index a6e8603d..00000000 Binary files a/old/data/borders/m15/blue/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/blue/nyx.png b/old/data/borders/m15/blue/nyx.png deleted file mode 100644 index 06f224d0..00000000 Binary files a/old/data/borders/m15/blue/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/blue/pt.png b/old/data/borders/m15/blue/pt.png deleted file mode 100644 index e9f38eea..00000000 Binary files a/old/data/borders/m15/blue/pt.png and /dev/null differ diff --git a/old/data/borders/m15/blue/stamp.png b/old/data/borders/m15/blue/stamp.png deleted file mode 100644 index f7ea61ae..00000000 Binary files a/old/data/borders/m15/blue/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/blueLand/frame.png b/old/data/borders/m15/blueLand/frame.png deleted file mode 100644 index 3d8b5bbe..00000000 Binary files a/old/data/borders/m15/blueLand/frame.png and /dev/null differ diff --git a/old/data/borders/m15/blueLand/legendary.png b/old/data/borders/m15/blueLand/legendary.png deleted file mode 100644 index f51705ae..00000000 Binary files a/old/data/borders/m15/blueLand/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/blueLand/miracle.png b/old/data/borders/m15/blueLand/miracle.png deleted file mode 100644 index f88ff474..00000000 Binary files a/old/data/borders/m15/blueLand/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/blueLand/nyx.png b/old/data/borders/m15/blueLand/nyx.png deleted file mode 100644 index dc16994b..00000000 Binary files a/old/data/borders/m15/blueLand/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/blueLand/pt.png b/old/data/borders/m15/blueLand/pt.png deleted file mode 100644 index e9f38eea..00000000 Binary files a/old/data/borders/m15/blueLand/pt.png and /dev/null differ diff --git a/old/data/borders/m15/blueLand/stamp.png b/old/data/borders/m15/blueLand/stamp.png deleted file mode 100644 index f7ea61ae..00000000 Binary files a/old/data/borders/m15/blueLand/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/border.js b/old/data/borders/m15/border.js deleted file mode 100644 index 5cdbf966..00000000 --- a/old/data/borders/m15/border.js +++ /dev/null @@ -1,7 +0,0 @@ -//============================================// -// M15 Border // -//============================================// -//Loads the colors -loadColors("white-White,blue-Blue,black-Black,red-Red,green-Green,gold-Gold,artifact-Artifact,colorless-Colorless,vehicle-Vehicle,whiteLand-White Land,blueLand-Blue Land,blackLand-Black Land,redLand-Red Land,greenLand-Green Land,goldLand-Gold Land,colorlessLand-Colorless Land") -//Finishes loading the border style -finishChangingBorder() diff --git a/old/data/borders/m15/clear/frame.png b/old/data/borders/m15/clear/frame.png deleted file mode 100644 index e902aa90..00000000 Binary files a/old/data/borders/m15/clear/frame.png and /dev/null differ diff --git a/old/data/borders/m15/clear/legendary.png b/old/data/borders/m15/clear/legendary.png deleted file mode 100644 index 988f7c73..00000000 Binary files a/old/data/borders/m15/clear/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/clear/miracle.png b/old/data/borders/m15/clear/miracle.png deleted file mode 100644 index 730d5013..00000000 Binary files a/old/data/borders/m15/clear/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/clear/nyx.png b/old/data/borders/m15/clear/nyx.png deleted file mode 100644 index 22a2b300..00000000 Binary files a/old/data/borders/m15/clear/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/clear/pt.png b/old/data/borders/m15/clear/pt.png deleted file mode 100644 index 4fa6c833..00000000 Binary files a/old/data/borders/m15/clear/pt.png and /dev/null differ diff --git a/old/data/borders/m15/clear/stamp.png b/old/data/borders/m15/clear/stamp.png deleted file mode 100644 index 99a1fb1d..00000000 Binary files a/old/data/borders/m15/clear/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/colorless/frame.png b/old/data/borders/m15/colorless/frame.png deleted file mode 100644 index e37fce1e..00000000 Binary files a/old/data/borders/m15/colorless/frame.png and /dev/null differ diff --git a/old/data/borders/m15/colorless/legendary.png b/old/data/borders/m15/colorless/legendary.png deleted file mode 100644 index ebddc01c..00000000 Binary files a/old/data/borders/m15/colorless/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/colorless/miracle.png b/old/data/borders/m15/colorless/miracle.png deleted file mode 100644 index 56a495e3..00000000 Binary files a/old/data/borders/m15/colorless/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/colorless/nyx.png b/old/data/borders/m15/colorless/nyx.png deleted file mode 100644 index 7b257a8d..00000000 Binary files a/old/data/borders/m15/colorless/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/colorless/pt.png b/old/data/borders/m15/colorless/pt.png deleted file mode 100644 index 4fa6c833..00000000 Binary files a/old/data/borders/m15/colorless/pt.png and /dev/null differ diff --git a/old/data/borders/m15/colorless/stamp.png b/old/data/borders/m15/colorless/stamp.png deleted file mode 100644 index ca5bfbfd..00000000 Binary files a/old/data/borders/m15/colorless/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/colorlessLand/frame.png b/old/data/borders/m15/colorlessLand/frame.png deleted file mode 100644 index 081d9513..00000000 Binary files a/old/data/borders/m15/colorlessLand/frame.png and /dev/null differ diff --git a/old/data/borders/m15/colorlessLand/legendary.png b/old/data/borders/m15/colorlessLand/legendary.png deleted file mode 100644 index 18b7f5ee..00000000 Binary files a/old/data/borders/m15/colorlessLand/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/colorlessLand/miracle.png b/old/data/borders/m15/colorlessLand/miracle.png deleted file mode 100644 index c87be3c7..00000000 Binary files a/old/data/borders/m15/colorlessLand/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/colorlessLand/nyx.png b/old/data/borders/m15/colorlessLand/nyx.png deleted file mode 100644 index 4b66cc1f..00000000 Binary files a/old/data/borders/m15/colorlessLand/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/colorlessLand/pt.png b/old/data/borders/m15/colorlessLand/pt.png deleted file mode 100644 index 4fa6c833..00000000 Binary files a/old/data/borders/m15/colorlessLand/pt.png and /dev/null differ diff --git a/old/data/borders/m15/colorlessLand/stamp.png b/old/data/borders/m15/colorlessLand/stamp.png deleted file mode 100644 index ca5bfbfd..00000000 Binary files a/old/data/borders/m15/colorlessLand/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/gold/frame.png b/old/data/borders/m15/gold/frame.png deleted file mode 100644 index 28c4ff65..00000000 Binary files a/old/data/borders/m15/gold/frame.png and /dev/null differ diff --git a/old/data/borders/m15/gold/legendary.png b/old/data/borders/m15/gold/legendary.png deleted file mode 100644 index c6328cdf..00000000 Binary files a/old/data/borders/m15/gold/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/gold/miracle.png b/old/data/borders/m15/gold/miracle.png deleted file mode 100644 index 9de82474..00000000 Binary files a/old/data/borders/m15/gold/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/gold/nyx.png b/old/data/borders/m15/gold/nyx.png deleted file mode 100644 index 24000574..00000000 Binary files a/old/data/borders/m15/gold/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/gold/pt.png b/old/data/borders/m15/gold/pt.png deleted file mode 100644 index 163d7330..00000000 Binary files a/old/data/borders/m15/gold/pt.png and /dev/null differ diff --git a/old/data/borders/m15/gold/stamp.png b/old/data/borders/m15/gold/stamp.png deleted file mode 100644 index 63313a57..00000000 Binary files a/old/data/borders/m15/gold/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/goldLand/frame.png b/old/data/borders/m15/goldLand/frame.png deleted file mode 100644 index 4cf8044c..00000000 Binary files a/old/data/borders/m15/goldLand/frame.png and /dev/null differ diff --git a/old/data/borders/m15/goldLand/legendary.png b/old/data/borders/m15/goldLand/legendary.png deleted file mode 100644 index c6328cdf..00000000 Binary files a/old/data/borders/m15/goldLand/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/goldLand/miracle.png b/old/data/borders/m15/goldLand/miracle.png deleted file mode 100644 index d37b0136..00000000 Binary files a/old/data/borders/m15/goldLand/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/goldLand/nyx.png b/old/data/borders/m15/goldLand/nyx.png deleted file mode 100644 index 3f9cca87..00000000 Binary files a/old/data/borders/m15/goldLand/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/goldLand/pt.png b/old/data/borders/m15/goldLand/pt.png deleted file mode 100644 index 163d7330..00000000 Binary files a/old/data/borders/m15/goldLand/pt.png and /dev/null differ diff --git a/old/data/borders/m15/goldLand/stamp.png b/old/data/borders/m15/goldLand/stamp.png deleted file mode 100644 index 63313a57..00000000 Binary files a/old/data/borders/m15/goldLand/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/green/frame.png b/old/data/borders/m15/green/frame.png deleted file mode 100644 index cdf92e69..00000000 Binary files a/old/data/borders/m15/green/frame.png and /dev/null differ diff --git a/old/data/borders/m15/green/legendary.png b/old/data/borders/m15/green/legendary.png deleted file mode 100644 index a37d48fd..00000000 Binary files a/old/data/borders/m15/green/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/green/miracle.png b/old/data/borders/m15/green/miracle.png deleted file mode 100644 index e35be73c..00000000 Binary files a/old/data/borders/m15/green/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/green/nyx.png b/old/data/borders/m15/green/nyx.png deleted file mode 100644 index cf49bf89..00000000 Binary files a/old/data/borders/m15/green/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/green/pt.png b/old/data/borders/m15/green/pt.png deleted file mode 100644 index f553b708..00000000 Binary files a/old/data/borders/m15/green/pt.png and /dev/null differ diff --git a/old/data/borders/m15/green/stamp.png b/old/data/borders/m15/green/stamp.png deleted file mode 100644 index 3e4cd6cd..00000000 Binary files a/old/data/borders/m15/green/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/greenLand/frame.png b/old/data/borders/m15/greenLand/frame.png deleted file mode 100644 index 33d0343d..00000000 Binary files a/old/data/borders/m15/greenLand/frame.png and /dev/null differ diff --git a/old/data/borders/m15/greenLand/legendary.png b/old/data/borders/m15/greenLand/legendary.png deleted file mode 100644 index a37d48fd..00000000 Binary files a/old/data/borders/m15/greenLand/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/greenLand/miracle.png b/old/data/borders/m15/greenLand/miracle.png deleted file mode 100644 index 2284b44c..00000000 Binary files a/old/data/borders/m15/greenLand/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/greenLand/nyx.png b/old/data/borders/m15/greenLand/nyx.png deleted file mode 100644 index 5ebabdb5..00000000 Binary files a/old/data/borders/m15/greenLand/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/greenLand/pt.png b/old/data/borders/m15/greenLand/pt.png deleted file mode 100644 index f553b708..00000000 Binary files a/old/data/borders/m15/greenLand/pt.png and /dev/null differ diff --git a/old/data/borders/m15/greenLand/stamp.png b/old/data/borders/m15/greenLand/stamp.png deleted file mode 100644 index 3e4cd6cd..00000000 Binary files a/old/data/borders/m15/greenLand/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/imgArtMask.png b/old/data/borders/m15/imgArtMask.png deleted file mode 100644 index 7f60e29e..00000000 Binary files a/old/data/borders/m15/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/m15/imgBorderMask.png b/old/data/borders/m15/imgBorderMask.png deleted file mode 100644 index bf57bbfd..00000000 Binary files a/old/data/borders/m15/imgBorderMask.png and /dev/null differ diff --git a/old/data/borders/m15/imgFrameMask.png b/old/data/borders/m15/imgFrameMask.png deleted file mode 100644 index afd61b47..00000000 Binary files a/old/data/borders/m15/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/m15/imgPinlineMask.png b/old/data/borders/m15/imgPinlineMask.png deleted file mode 100644 index 8a23389d..00000000 Binary files a/old/data/borders/m15/imgPinlineMask.png and /dev/null differ diff --git a/old/data/borders/m15/imgRulesMask.png b/old/data/borders/m15/imgRulesMask.png deleted file mode 100644 index 7dd26950..00000000 Binary files a/old/data/borders/m15/imgRulesMask.png and /dev/null differ diff --git a/old/data/borders/m15/imgTitleMask.png b/old/data/borders/m15/imgTitleMask.png deleted file mode 100644 index 335d0ca5..00000000 Binary files a/old/data/borders/m15/imgTitleMask.png and /dev/null differ diff --git a/old/data/borders/m15/imgTypeMask.png b/old/data/borders/m15/imgTypeMask.png deleted file mode 100644 index 78ee4eb9..00000000 Binary files a/old/data/borders/m15/imgTypeMask.png and /dev/null differ diff --git a/old/data/borders/m15/red/frame.png b/old/data/borders/m15/red/frame.png deleted file mode 100644 index 8e6a1956..00000000 Binary files a/old/data/borders/m15/red/frame.png and /dev/null differ diff --git a/old/data/borders/m15/red/legendary.png b/old/data/borders/m15/red/legendary.png deleted file mode 100644 index 9d32d2b0..00000000 Binary files a/old/data/borders/m15/red/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/red/miracle.png b/old/data/borders/m15/red/miracle.png deleted file mode 100644 index 0201c4d4..00000000 Binary files a/old/data/borders/m15/red/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/red/nyx.png b/old/data/borders/m15/red/nyx.png deleted file mode 100644 index 03917c2c..00000000 Binary files a/old/data/borders/m15/red/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/red/pt.png b/old/data/borders/m15/red/pt.png deleted file mode 100644 index 255cf8b8..00000000 Binary files a/old/data/borders/m15/red/pt.png and /dev/null differ diff --git a/old/data/borders/m15/red/stamp.png b/old/data/borders/m15/red/stamp.png deleted file mode 100644 index 3430bf60..00000000 Binary files a/old/data/borders/m15/red/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/redLand/frame.png b/old/data/borders/m15/redLand/frame.png deleted file mode 100644 index feb21e20..00000000 Binary files a/old/data/borders/m15/redLand/frame.png and /dev/null differ diff --git a/old/data/borders/m15/redLand/legendary.png b/old/data/borders/m15/redLand/legendary.png deleted file mode 100644 index 9d32d2b0..00000000 Binary files a/old/data/borders/m15/redLand/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/redLand/miracle.png b/old/data/borders/m15/redLand/miracle.png deleted file mode 100644 index e9ad7caa..00000000 Binary files a/old/data/borders/m15/redLand/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/redLand/nyx.png b/old/data/borders/m15/redLand/nyx.png deleted file mode 100644 index e4cc2d45..00000000 Binary files a/old/data/borders/m15/redLand/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/redLand/pt.png b/old/data/borders/m15/redLand/pt.png deleted file mode 100644 index 255cf8b8..00000000 Binary files a/old/data/borders/m15/redLand/pt.png and /dev/null differ diff --git a/old/data/borders/m15/redLand/stamp.png b/old/data/borders/m15/redLand/stamp.png deleted file mode 100644 index 3430bf60..00000000 Binary files a/old/data/borders/m15/redLand/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/vehicle/frame.png b/old/data/borders/m15/vehicle/frame.png deleted file mode 100644 index 61b7da99..00000000 Binary files a/old/data/borders/m15/vehicle/frame.png and /dev/null differ diff --git a/old/data/borders/m15/vehicle/legendary.png b/old/data/borders/m15/vehicle/legendary.png deleted file mode 100644 index 988f7c73..00000000 Binary files a/old/data/borders/m15/vehicle/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/vehicle/miracle.png b/old/data/borders/m15/vehicle/miracle.png deleted file mode 100644 index 9b55b95d..00000000 Binary files a/old/data/borders/m15/vehicle/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/vehicle/nyx.png b/old/data/borders/m15/vehicle/nyx.png deleted file mode 100644 index 3662cb6d..00000000 Binary files a/old/data/borders/m15/vehicle/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/vehicle/pt.png b/old/data/borders/m15/vehicle/pt.png deleted file mode 100644 index 218ae720..00000000 Binary files a/old/data/borders/m15/vehicle/pt.png and /dev/null differ diff --git a/old/data/borders/m15/vehicle/stamp.png b/old/data/borders/m15/vehicle/stamp.png deleted file mode 100644 index 99a1fb1d..00000000 Binary files a/old/data/borders/m15/vehicle/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/white/frame.png b/old/data/borders/m15/white/frame.png deleted file mode 100644 index 55129369..00000000 Binary files a/old/data/borders/m15/white/frame.png and /dev/null differ diff --git a/old/data/borders/m15/white/legendary.png b/old/data/borders/m15/white/legendary.png deleted file mode 100644 index c38f942f..00000000 Binary files a/old/data/borders/m15/white/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/white/miracle.png b/old/data/borders/m15/white/miracle.png deleted file mode 100644 index 3ab228b0..00000000 Binary files a/old/data/borders/m15/white/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/white/nyx.png b/old/data/borders/m15/white/nyx.png deleted file mode 100644 index 420291cb..00000000 Binary files a/old/data/borders/m15/white/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/white/pt.png b/old/data/borders/m15/white/pt.png deleted file mode 100644 index 6480a390..00000000 Binary files a/old/data/borders/m15/white/pt.png and /dev/null differ diff --git a/old/data/borders/m15/white/stamp.png b/old/data/borders/m15/white/stamp.png deleted file mode 100644 index bd677a7d..00000000 Binary files a/old/data/borders/m15/white/stamp.png and /dev/null differ diff --git a/old/data/borders/m15/whiteLand/frame.png b/old/data/borders/m15/whiteLand/frame.png deleted file mode 100644 index 3e1014e9..00000000 Binary files a/old/data/borders/m15/whiteLand/frame.png and /dev/null differ diff --git a/old/data/borders/m15/whiteLand/legendary.png b/old/data/borders/m15/whiteLand/legendary.png deleted file mode 100644 index c38f942f..00000000 Binary files a/old/data/borders/m15/whiteLand/legendary.png and /dev/null differ diff --git a/old/data/borders/m15/whiteLand/miracle.png b/old/data/borders/m15/whiteLand/miracle.png deleted file mode 100644 index 9260154a..00000000 Binary files a/old/data/borders/m15/whiteLand/miracle.png and /dev/null differ diff --git a/old/data/borders/m15/whiteLand/nyx.png b/old/data/borders/m15/whiteLand/nyx.png deleted file mode 100644 index a98474b0..00000000 Binary files a/old/data/borders/m15/whiteLand/nyx.png and /dev/null differ diff --git a/old/data/borders/m15/whiteLand/pt.png b/old/data/borders/m15/whiteLand/pt.png deleted file mode 100644 index 6480a390..00000000 Binary files a/old/data/borders/m15/whiteLand/pt.png and /dev/null differ diff --git a/old/data/borders/m15/whiteLand/stamp.png b/old/data/borders/m15/whiteLand/stamp.png deleted file mode 100644 index bd677a7d..00000000 Binary files a/old/data/borders/m15/whiteLand/stamp.png and /dev/null differ diff --git a/old/data/borders/miniPlane/border.js b/old/data/borders/miniPlane/border.js deleted file mode 100644 index 67fbb318..00000000 --- a/old/data/borders/miniPlane/border.js +++ /dev/null @@ -1,71 +0,0 @@ -//============================================// -// Miniplane Border // -//============================================// -//General Booleans -cardData.miracle = false -cardData.nyx = false -cardData.legendary = false -cardData.creature = false -cardData.rulesBox = false -cardData.pinline = false -cardData.titleTypeBoxes = false -cardData.rareStamp = false -cardData.transparency = true -//Specific Values -cardData.manaSymbolDirection = "none" -cardData.titleAlignment = "center" -cardData.titleX = cwidth(60) -cardData.titleY = cheight(95) -cardData.titleFontSize = cwidth(42) -cardData.titleWidth = cwidth(630) -cardData.typeAlignment = "center" -cardData.typeX = cwidth(165) -cardData.typeWidth = cwidth(420) -cardData.typeY = cheight(735) -cardData.typeFontSize = cwidth(32) -cardData.textX = cwidth(105) -cardData.textY = cheight(780) -cardData.textWidth = cwidth(540) -cardData.setSymbolY = cheight(727) -cardData.setSymbolWidth = cwidth(55) -cardData.setSymbolHeight = cheight(33) -cardData.setSymbolX = cwidth(582) -cardData.watermarkWidth = cwidth(660) -cardData.watermarkHeight = cheight(210) -cardData.watermarkY = cheight(864) -cardData.cardArtX = cwidth(28) -cardData.cardArtY = cheight(46) -cardData.bottomInfoFunction = "bottomInfoPlanechase" -//Images -imgArtMask.load("data/borders/miniPlane/imgArtMask.png") -imgFrameMask.load("data/borders/miniPlane/imgFrameMask.png") -imgBorderMask.load("data/borders/miniPlane/imgBorderMask.png") -//Loads the Colors -loadColors("white-Regular") -//Finishes loading the border style -finishChangingBorder() - -function bottomInfoPlanechase() { - var infoNumber = document.getElementById("inputInfoNumber").value - var infoRarity = document.getElementById("inputInfoRarity").value - var infoSet = document.getElementById("inputInfoSet").value - var infoLanguage = document.getElementById("inputInfoLanguage").value - var infoArtist = document.getElementById("inputInfoArtist").value - var infoCopyright = "\u2122 & \u00a9 " + date.getFullYear() + " Wizards of the Coast" - var infoNumberSetLanguage = infoNumber + " " + infoSet + " \u00b7 " + infoLanguage + " " - textContext.fillStyle = "white" - textContext.font = cheight(15) + "px gothammedium" - var infoNumberSetLanguageWidth = textContext.measureText(infoNumberSetLanguage).width - textContext.font = cheight(16) + "px mplantin" - var infoCopyrightWidth = textContext.measureText(infoCopyright).width - var bottomLineStart = cardWidth / 2 - (infoNumberSetLanguageWidth + infoCopyrightWidth) / 2 - textContext.fillText(infoCopyright, bottomLineStart + infoNumberSetLanguageWidth, cheight(1029)) - textContext.font = cheight(15) + "px gothammedium" - textContext.fillText(infoNumberSetLanguage, bottomLineStart, cheight(1029)) - textContext.font = cheight(19) + "px belerenbsc" - var infoArtistStart = cardWidth / 2 - (textContext.measureText(infoArtist).width + cwidth(23)) / 2 - imgArtistBrush.load("none", infoArtistStart, cheight(995), cwidth(21), cheight(13)) - textContext.mask(imgArtistBrush, "none", textContext.fillStyle) - textContext.fillText(infoArtist, infoArtistStart + cwidth(23), cheight(1008)) - drawCard() -} \ No newline at end of file diff --git a/old/data/borders/miniPlane/imgArtMask.png b/old/data/borders/miniPlane/imgArtMask.png deleted file mode 100644 index ac7f3dbc..00000000 Binary files a/old/data/borders/miniPlane/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/miniPlane/imgBorderMask.png b/old/data/borders/miniPlane/imgBorderMask.png deleted file mode 100644 index f2b96842..00000000 Binary files a/old/data/borders/miniPlane/imgBorderMask.png and /dev/null differ diff --git a/old/data/borders/miniPlane/imgFrameMask.png b/old/data/borders/miniPlane/imgFrameMask.png deleted file mode 100644 index b432110e..00000000 Binary files a/old/data/borders/miniPlane/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/miniPlane/white/frame.png b/old/data/borders/miniPlane/white/frame.png deleted file mode 100644 index b5b221cb..00000000 Binary files a/old/data/borders/miniPlane/white/frame.png and /dev/null differ diff --git a/old/data/borders/old/artifact/frame.png b/old/data/borders/old/artifact/frame.png deleted file mode 100644 index 7f73073a..00000000 Binary files a/old/data/borders/old/artifact/frame.png and /dev/null differ diff --git a/old/data/borders/old/artifact/pt.png b/old/data/borders/old/artifact/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/artifact/pt.png and /dev/null differ diff --git a/old/data/borders/old/black/frame.png b/old/data/borders/old/black/frame.png deleted file mode 100644 index bdb806be..00000000 Binary files a/old/data/borders/old/black/frame.png and /dev/null differ diff --git a/old/data/borders/old/black/pt.png b/old/data/borders/old/black/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/black/pt.png and /dev/null differ diff --git a/old/data/borders/old/blackLand/frame.png b/old/data/borders/old/blackLand/frame.png deleted file mode 100644 index 1e23ba19..00000000 Binary files a/old/data/borders/old/blackLand/frame.png and /dev/null differ diff --git a/old/data/borders/old/blackLand/pt.png b/old/data/borders/old/blackLand/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/blackLand/pt.png and /dev/null differ diff --git a/old/data/borders/old/blue/frame.png b/old/data/borders/old/blue/frame.png deleted file mode 100644 index 7ff32780..00000000 Binary files a/old/data/borders/old/blue/frame.png and /dev/null differ diff --git a/old/data/borders/old/blue/pt.png b/old/data/borders/old/blue/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/blue/pt.png and /dev/null differ diff --git a/old/data/borders/old/blueLand/frame.png b/old/data/borders/old/blueLand/frame.png deleted file mode 100644 index 9c76a47d..00000000 Binary files a/old/data/borders/old/blueLand/frame.png and /dev/null differ diff --git a/old/data/borders/old/blueLand/pt.png b/old/data/borders/old/blueLand/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/blueLand/pt.png and /dev/null differ diff --git a/old/data/borders/old/border.js b/old/data/borders/old/border.js deleted file mode 100644 index 3c48f990..00000000 --- a/old/data/borders/old/border.js +++ /dev/null @@ -1,67 +0,0 @@ -//============================================// -// OLD Border // -//============================================// -//General Booleans -cardData.miracle = false -cardData.nyx = false -cardData.rareStamp = false -cardData.legendary = false -cardData.pinline = false -cardData.titleTypeBoxes = false -cardData.bottomInfoFunction = "none" -//Specific Values -cardData.cardArtX = cwidth(89) -cardData.cardArtY = cheight(103) -cardData.manaSymbolX = cwidth(655) -cardData.manaSymbolY = cheight(50) -document.getElementById("inputTitleColor").value = "#ffffff" -cardData.titleFont = "goudymedieval" -cardData.titleShadow = cwidth(2) -cardData.titleFontSize = cwidth(43) -cardData.titleX = cwidth(81) -cardData.titleY = cheight(81) -cardData.titleWidth = cwidth(600) -document.getElementById("inputTypeColor").value = "#ffffff" -cardData.typeFont = "mplantin" -cardData.typeShadow = cwidth(2) -cardData.typeX = cwidth(76) -cardData.typeY = cheight(616) -cardData.typeWidth = cwidth(600) -cardData.textX = cwidth(92) -cardData.textY = cheight(657) -cardData.textWidth = cwidth(574) -document.getElementById("inputCreatureColor").value = "#ffffff" -cardData.ptFont = "46px mplantin" -cardData.ptShadow = cwidth(2) -cardData.ptX = cwidth(655) -cardData.ptY = cheight(984) -cardData.setSymbolX = cwidth(671) -cardData.setSymbolY = cheight(603) -cardData.bottomInfoFunction = "bottomInfoOld" -//Images -imgArtMask.load("data/borders/old/imgArtMask.png") -imgFrameMask.load("data/borders/old/imgFrameMask.png") -imgRulesMask.load("data/borders/old/imgRulesMask.png") -imgBorderMask.load("data/borders/old/imgBorderMask.png") - -//Loads the colors -loadColors("white-White,blue-Blue,black-Black,red-Red,green-Green,gold-Gold,artifact-Artifact,whiteLand-White Land,blueLand-Blue Land,blackLand-Black Land,redLand-Red Land,greenLand-Green Land,colorlessLand-Colorless Land") -//Finishes loading the border style -finishChangingBorder() - -function bottomInfoOld() { - var infoArtist = "Illus. " + document.getElementById("inputInfoArtist").value - var copyrightNumber = "\u2122 & \u00a9 1993-" + date.getFullYear() + " Wizards of the Coast, Inc. *Not For Sale*" //+ document.getElementById("inputInfoNumber").value - textContext.textAlign = "center" - textContext.fillStyle = "black" - textContext.font = "31px mplantin" - textContext.fillText(infoArtist, cwidth(377), cheight(970)) - textContext.fillStyle = "white" - textContext.fillText(infoArtist, cwidth(375), cheight(968)) - if (document.getElementById("inputFrameColor").value.includes("white")) { - textContext.fillStyle = "black" - } - textContext.font = "17px mplantin" - textContext.fillText(copyrightNumber, cwidth(375), cheight(989)) - drawCard() -} \ No newline at end of file diff --git a/old/data/borders/old/colorlessLand/frame.png b/old/data/borders/old/colorlessLand/frame.png deleted file mode 100644 index 21b4d6cd..00000000 Binary files a/old/data/borders/old/colorlessLand/frame.png and /dev/null differ diff --git a/old/data/borders/old/colorlessLand/pt.png b/old/data/borders/old/colorlessLand/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/colorlessLand/pt.png and /dev/null differ diff --git a/old/data/borders/old/gold/frame.png b/old/data/borders/old/gold/frame.png deleted file mode 100644 index 8d22a92b..00000000 Binary files a/old/data/borders/old/gold/frame.png and /dev/null differ diff --git a/old/data/borders/old/gold/pt.png b/old/data/borders/old/gold/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/gold/pt.png and /dev/null differ diff --git a/old/data/borders/old/green/frame.png b/old/data/borders/old/green/frame.png deleted file mode 100644 index af2d965e..00000000 Binary files a/old/data/borders/old/green/frame.png and /dev/null differ diff --git a/old/data/borders/old/green/pt.png b/old/data/borders/old/green/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/green/pt.png and /dev/null differ diff --git a/old/data/borders/old/greenLand/frame.png b/old/data/borders/old/greenLand/frame.png deleted file mode 100644 index e24955fb..00000000 Binary files a/old/data/borders/old/greenLand/frame.png and /dev/null differ diff --git a/old/data/borders/old/greenLand/pt.png b/old/data/borders/old/greenLand/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/greenLand/pt.png and /dev/null differ diff --git a/old/data/borders/old/imgArtMask.png b/old/data/borders/old/imgArtMask.png deleted file mode 100644 index 48acf937..00000000 Binary files a/old/data/borders/old/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/old/imgBorderMask.png b/old/data/borders/old/imgBorderMask.png deleted file mode 100644 index 213bee59..00000000 Binary files a/old/data/borders/old/imgBorderMask.png and /dev/null differ diff --git a/old/data/borders/old/imgFrameMask.png b/old/data/borders/old/imgFrameMask.png deleted file mode 100644 index 55b00a7f..00000000 Binary files a/old/data/borders/old/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/old/imgRulesMask.png b/old/data/borders/old/imgRulesMask.png deleted file mode 100644 index 7f0fbd09..00000000 Binary files a/old/data/borders/old/imgRulesMask.png and /dev/null differ diff --git a/old/data/borders/old/red/frame.png b/old/data/borders/old/red/frame.png deleted file mode 100644 index f2e34555..00000000 Binary files a/old/data/borders/old/red/frame.png and /dev/null differ diff --git a/old/data/borders/old/red/pt.png b/old/data/borders/old/red/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/red/pt.png and /dev/null differ diff --git a/old/data/borders/old/redLand/frame.png b/old/data/borders/old/redLand/frame.png deleted file mode 100644 index 2aab3b4c..00000000 Binary files a/old/data/borders/old/redLand/frame.png and /dev/null differ diff --git a/old/data/borders/old/redLand/pt.png b/old/data/borders/old/redLand/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/redLand/pt.png and /dev/null differ diff --git a/old/data/borders/old/white/frame.png b/old/data/borders/old/white/frame.png deleted file mode 100644 index 7906316f..00000000 Binary files a/old/data/borders/old/white/frame.png and /dev/null differ diff --git a/old/data/borders/old/white/pt.png b/old/data/borders/old/white/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/white/pt.png and /dev/null differ diff --git a/old/data/borders/old/whiteLand/frame.png b/old/data/borders/old/whiteLand/frame.png deleted file mode 100644 index 7a7ad8c1..00000000 Binary files a/old/data/borders/old/whiteLand/frame.png and /dev/null differ diff --git a/old/data/borders/old/whiteLand/pt.png b/old/data/borders/old/whiteLand/pt.png deleted file mode 100644 index fd7ace80..00000000 Binary files a/old/data/borders/old/whiteLand/pt.png and /dev/null differ diff --git a/old/data/borders/oldimgStamp.png b/old/data/borders/oldimgStamp.png deleted file mode 100644 index 8fcdb3b4..00000000 Binary files a/old/data/borders/oldimgStamp.png and /dev/null differ diff --git a/old/data/borders/plane/border.js b/old/data/borders/plane/border.js deleted file mode 100644 index 44dee483..00000000 --- a/old/data/borders/plane/border.js +++ /dev/null @@ -1,77 +0,0 @@ -//============================================// -// Plane Border // -//============================================// -//Change canvas size -changeCanvasSize(1050, 750) -imgFrame.load("none") -//General Booleans -cardData.miracle = false -cardData.nyx = false -cardData.legendary = false -cardData.creature = false -cardData.rareStamp = false -cardData.pinline = false -cardData.transparency = true -//Specific Values -cardData.manaSymbolDirection = "none" -cardData.titleAlignment = "center" -cardData.titleX = cwidth(50) -cardData.titleY = cheight(105) -cardData.titleFontSize = cwidth(25) -cardData.titleWidth = cwidth(650) -cardData.typeAlignment = "center" -cardData.typeX = cwidth(160) -cardData.typeWidth = cwidth(430) -cardData.typeY = cheight(739) -cardData.typeFontSize = cwidth(18) -cardData.textX = cwidth(90) -cardData.textY = cheight(790) -document.getElementById("inputTextSize").value = 27 -cardData.textWidth = cwidth(575) -cardData.setSymbolY = cheight(727) -cardData.setSymbolWidth = cwidth(55) -cardData.setSymbolHeight = cheight(33) -cardData.setSymbolX = cwidth(582) -cardData.watermarkWidth = cwidth(660) -cardData.watermarkHeight = cheight(210) -cardData.watermarkY = cheight(870) -cardData.cardArtX = cwidth(23) -cardData.cardArtY = cheight(46) -cardData.bottomInfoFunction = "bottomInfoPlanechase" -cardData.horizontal = true -//Images -imgArtMask.load("data/borders/plane/imgArtMask.png") -imgFrameMask.load("data/borders/plane/imgFrameMask.png") -imgBorderMask.load("data/borders/plane/imgBorderMask.png") -imgRulesMask.load("data/borders/plane/imgRulesMask.png") -imgTypeMask.load("data/borders/plane/imgTypeMask.png") -imgTitleMask.load("data/borders/plane/imgTitleMask.png") -//Loads the Colors -loadColors("white-Regular,high-High,mid-Middle,low-Low,none-Single") -//Finishes loading the border style -finishChangingBorder() - -function bottomInfoPlanechase() { - var infoNumber = document.getElementById("inputInfoNumber").value - var infoRarity = document.getElementById("inputInfoRarity").value - var infoSet = document.getElementById("inputInfoSet").value - var infoLanguage = document.getElementById("inputInfoLanguage").value - var infoArtist = document.getElementById("inputInfoArtist").value - var infoCopyright = "\u2122 & \u00a9 " + date.getFullYear() + " Wizards of the Coast" - var infoNumberSetLanguage = infoNumber + " " + infoSet + " \u00b7 " + infoLanguage + " " - textContext.fillStyle = "white" - textContext.font = cheight(18) + "px gothammedium" - var infoNumberSetLanguageWidth = textContext.measureText(infoNumberSetLanguage).width - textContext.font = cheight(19) + "px mplantin" - var infoCopyrightWidth = textContext.measureText(infoCopyright).width - var bottomLineStart = cardWidth / 2 - (infoNumberSetLanguageWidth + infoCopyrightWidth) / 2 - textContext.fillText(infoCopyright, bottomLineStart + infoNumberSetLanguageWidth, cheight(1028)) - textContext.font = cheight(18) + "px gothammedium" - textContext.fillText(infoNumberSetLanguage, bottomLineStart, cheight(1028)) - textContext.font = cheight(19) + "px belerenbsc" - var infoArtistStart = cardWidth / 2 - (textContext.measureText(infoArtist).width + cheight(21)) / 2 - imgArtistBrush.load("none", infoArtistStart, cheight(992), cheight(21), cheight(13)) - textContext.mask(imgArtistBrush, "none", textContext.fillStyle) - textContext.fillText(infoArtist, infoArtistStart + cheight(21), cheight(1004)) - drawCard() -} \ No newline at end of file diff --git a/old/data/borders/plane/high/frame.png b/old/data/borders/plane/high/frame.png deleted file mode 100644 index 40d29079..00000000 Binary files a/old/data/borders/plane/high/frame.png and /dev/null differ diff --git a/old/data/borders/plane/imgArtMask.png b/old/data/borders/plane/imgArtMask.png deleted file mode 100644 index c7a06ec5..00000000 Binary files a/old/data/borders/plane/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/plane/imgBorderMask.png b/old/data/borders/plane/imgBorderMask.png deleted file mode 100644 index d117bc80..00000000 Binary files a/old/data/borders/plane/imgBorderMask.png and /dev/null differ diff --git a/old/data/borders/plane/imgFrameMask.png b/old/data/borders/plane/imgFrameMask.png deleted file mode 100644 index 47ce245f..00000000 Binary files a/old/data/borders/plane/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/plane/imgRulesMask.png b/old/data/borders/plane/imgRulesMask.png deleted file mode 100644 index 860e5295..00000000 Binary files a/old/data/borders/plane/imgRulesMask.png and /dev/null differ diff --git a/old/data/borders/plane/imgTitleMask.png b/old/data/borders/plane/imgTitleMask.png deleted file mode 100644 index 8fddcc02..00000000 Binary files a/old/data/borders/plane/imgTitleMask.png and /dev/null differ diff --git a/old/data/borders/plane/imgTypeMask.png b/old/data/borders/plane/imgTypeMask.png deleted file mode 100644 index a4875bfb..00000000 Binary files a/old/data/borders/plane/imgTypeMask.png and /dev/null differ diff --git a/old/data/borders/plane/low/frame.png b/old/data/borders/plane/low/frame.png deleted file mode 100644 index feb7dbd2..00000000 Binary files a/old/data/borders/plane/low/frame.png and /dev/null differ diff --git a/old/data/borders/plane/mid/frame.png b/old/data/borders/plane/mid/frame.png deleted file mode 100644 index fb337eef..00000000 Binary files a/old/data/borders/plane/mid/frame.png and /dev/null differ diff --git a/old/data/borders/plane/none/frame.png b/old/data/borders/plane/none/frame.png deleted file mode 100644 index 539ca471..00000000 Binary files a/old/data/borders/plane/none/frame.png and /dev/null differ diff --git a/old/data/borders/plane/white/frame.png b/old/data/borders/plane/white/frame.png deleted file mode 100644 index d8259f71..00000000 Binary files a/old/data/borders/plane/white/frame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/artifact/altFrame.png b/old/data/borders/planeswalker/artifact/altFrame.png deleted file mode 100644 index 78764791..00000000 Binary files a/old/data/borders/planeswalker/artifact/altFrame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/artifact/frame.png b/old/data/borders/planeswalker/artifact/frame.png deleted file mode 100644 index 2752abc9..00000000 Binary files a/old/data/borders/planeswalker/artifact/frame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/artifact/pt.png b/old/data/borders/planeswalker/artifact/pt.png deleted file mode 100644 index 3ca7595c..00000000 Binary files a/old/data/borders/planeswalker/artifact/pt.png and /dev/null differ diff --git a/old/data/borders/planeswalker/artifact/stamp.png b/old/data/borders/planeswalker/artifact/stamp.png deleted file mode 100644 index 44d67f2d..00000000 Binary files a/old/data/borders/planeswalker/artifact/stamp.png and /dev/null differ diff --git a/old/data/borders/planeswalker/black/altFrame.png b/old/data/borders/planeswalker/black/altFrame.png deleted file mode 100644 index dd9137d9..00000000 Binary files a/old/data/borders/planeswalker/black/altFrame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/black/frame.png b/old/data/borders/planeswalker/black/frame.png deleted file mode 100644 index b716df31..00000000 Binary files a/old/data/borders/planeswalker/black/frame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/black/pt.png b/old/data/borders/planeswalker/black/pt.png deleted file mode 100644 index 3ca7595c..00000000 Binary files a/old/data/borders/planeswalker/black/pt.png and /dev/null differ diff --git a/old/data/borders/planeswalker/black/stamp.png b/old/data/borders/planeswalker/black/stamp.png deleted file mode 100644 index bf364181..00000000 Binary files a/old/data/borders/planeswalker/black/stamp.png and /dev/null differ diff --git a/old/data/borders/planeswalker/blue/altFrame.png b/old/data/borders/planeswalker/blue/altFrame.png deleted file mode 100644 index 2267c60e..00000000 Binary files a/old/data/borders/planeswalker/blue/altFrame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/blue/frame.png b/old/data/borders/planeswalker/blue/frame.png deleted file mode 100644 index 59733c37..00000000 Binary files a/old/data/borders/planeswalker/blue/frame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/blue/pt.png b/old/data/borders/planeswalker/blue/pt.png deleted file mode 100644 index 3ca7595c..00000000 Binary files a/old/data/borders/planeswalker/blue/pt.png and /dev/null differ diff --git a/old/data/borders/planeswalker/blue/stamp.png b/old/data/borders/planeswalker/blue/stamp.png deleted file mode 100644 index fa6f5686..00000000 Binary files a/old/data/borders/planeswalker/blue/stamp.png and /dev/null differ diff --git a/old/data/borders/planeswalker/border.js b/old/data/borders/planeswalker/border.js deleted file mode 100644 index d0afd892..00000000 --- a/old/data/borders/planeswalker/border.js +++ /dev/null @@ -1,139 +0,0 @@ -//============================================// -// M15 Border // -//============================================// -//General Booleans -cardData.miracle = false -cardData.nyx = false -cardData.legendary = false -//Specific Values -cardData.textX = cwidth(134) -cardData.textY = cheight(687) -cardData.textWidth = cwidth(550) -cardData.cardArtX = cwidth(52) -cardData.cardArtY = cheight(106) -cardData.titleFontSize = cwidth(40) -cardData.titleX = cwidth(62) -cardData.titleY = cheight(79) -cardData.manaSymbolY = cheight(46) -cardData.ptBoxX = cwidth(599) -cardData.ptBoxY = cheight(922) -cardData.ptBoxWidth = cwidth(120) -cardData.ptBoxHeight = cheight(78) -cardData.ptX = cwidth(657) -cardData.ptY = cheight(974) -cardData.watermarkY = cheight(805) -cardData.watermarkWidth = cwidth(520) -cardData.watermarkHeight = cheight(250) -cardData.setSymbolY = cheight(618) -cardData.setSymbolRight = cwidth(695) -imgRareStamp.load("none", cwidth(329), cheight(945), cwidth(90), cheight(50)) -imgRareStampRight.load("none", cwidth(329), cheight(945), cwidth(90), cheight(50)) -imgStamp.load("none", cwidth(340), cheight(961), cwidth(70), cheight(37)) -//Images -imgPowerToughness.load("data/borders/planeswalker/white/pt.png") -imgArtMask.load("data/borders/planeswalker/imgArtMask.png") -imgFrameMask.load("data/borders/planeswalker/imgFrameMask.png") -imgBorderMask.load("data/borders/planeswalker/imgBorderMask.png") -imgPinlineMask.load("data/borders/planeswalker/imgPinlineMask.png") -imgTitleMask.load("data/borders/planeswalker/imgTitleMask.png") -imgTypeMask.load("data/borders/planeswalker/imgTypeMask.png") -imgAbilityLineEven.load("data/borders/planeswalker/imgAbilityLineEven.png") -imgAbilityLineOdd.load("data/borders/planeswalker/imgAbilityLineOdd.png") -//Loads the Colors -loadColors("white-White,blue-Blue,black-Black,red-Red,green-Green,gold-Gold,artifact-Artifact,colorless-Colorless") -//Anything special -document.getElementById("inputCreatureColor").value = "#ffffff" -cardData.specialImageA = true -cardData.specialImageB = true -//Finishes loading the border style -finishChangingBorder() - -var abilityLineThickness = cheight(6) -var abilityLines = [] -function planeswalkerAbilityLines() { - abilityLines = [] - if (document.getElementById("inputAbilityLine1").value > 0) {abilityLines[abilityLines.length] = parseInt(document.getElementById("inputAbilityLine1").value)} - if (document.getElementById("inputAbilityLine2").value > 0) {abilityLines[abilityLines.length] = parseInt(document.getElementById("inputAbilityLine2").value)} - if (document.getElementById("inputAbilityLine3").value > 0) {abilityLines[abilityLines.length] = parseInt(document.getElementById("inputAbilityLine3").value)} - if (document.getElementById("inputAbilityLine4").value > 0) {abilityLines[abilityLines.length] = parseInt(document.getElementById("inputAbilityLine4").value)} - specialAContext.clearRect(0, 0, cardWidth, cardHeight) - //Start with the background - var abilityLineCurrentY = cheight(655) - abilityLineThickness - for (var i = 0; i < abilityLines.length; i ++) { - //determine the correct color - if (i % 2 === 0) { - specialAContext.fillStyle = "#d3d3d3d3" - } else { - specialAContext.fillStyle = "#a8a8a8a8" - } - if (i == abilityLines.length - 1) { - //This is the last line - specialAContext.fillRect(cwidth(50), abilityLineCurrentY + abilityLineThickness, cwidth(649), cardHeight - abilityLineCurrentY - cheight(89) - abilityLineThickness) - } else { - specialAContext.fillRect(cwidth(50), abilityLineCurrentY + abilityLineThickness, cwidth(649), abilityLines[i] - abilityLineThickness * 2) - if (i % 2 === 0) { - specialAContext.drawImage(imgAbilityLineOdd, cwidth(92), abilityLineCurrentY + abilityLines[i] - abilityLineThickness, cwidth(599), abilityLineThickness * 2) - } else { - specialAContext.drawImage(imgAbilityLineEven, cwidth(92), abilityLineCurrentY + abilityLines[i] - abilityLineThickness, cwidth(599), abilityLineThickness * 2) - } - } - abilityLineCurrentY += abilityLines[i] - } - planeswalkerAbilityIcons() -} -function planeswalkerAbilityIcons() { - switch (abilityLines.length) { - case 4: - abilityIconSpacing = cheight(75) - abilityIconStartShift = cheight(12) - break; - case 3: - abilityIconSpacing = cheight(94) - abilityIconStartShift = cheight(0) - break; - case 2: - abilityIconSpacing = cheight(135) - abilityIconStartShift = cheight(-35) - break; - case 1: - abilityIconSpacing = cheight(0) - abilityIconStartShift = cheight(-100) - break; - } - specialBContext.clearRect(0, 0, cardWidth, cardHeight) - //Now the loyalty ability icons - var abilityLineCurrentY = cheight(705) - abilityIconStartShift - for (var i = 0; i < abilityLines.length; i ++) { - var loyaltyValue = document.getElementById("inputAbilityValue" + i).value - if (loyaltyValue != "") { - specialBContext.fillStyle = "white" - specialBContext.textAlign = "center" - specialBContext.font = cwidth(31) + "px belerenbsc" - if (loyaltyValue.charAt(0) == "-") { - specialBContext.drawImage(manaSymbolImageList[58], cwidth(35), abilityLineCurrentY - cheight(28), cwidth(86), cheight(64)) - specialBContext.fillText(loyaltyValue, cwidth(76), abilityLineCurrentY + cheight(8)) - specialBContext.font = cwidth(38) + "px mplantin" - specialBContext.fillStyle = "black" - specialBContext.fillText(":", cwidth(125), abilityLineCurrentY + cheight(5)) - } else if (loyaltyValue.charAt(0) == "+") { - specialBContext.drawImage(manaSymbolImageList[59], cwidth(35), abilityLineCurrentY - cheight(36), cwidth(86), cheight(63)) - specialBContext.fillText(loyaltyValue, cwidth(76), abilityLineCurrentY + cheight(9)) - specialBContext.font = cwidth(38) + "px mplantin" - specialBContext.fillStyle = "black" - specialBContext.fillText(":", cwidth(125), abilityLineCurrentY + cheight(7)) - } else { - specialBContext.drawImage(manaSymbolImageList[60], cwidth(35), abilityLineCurrentY - cheight(27), cwidth(85), cheight(56)) - specialBContext.fillText(loyaltyValue, cwidth(76), abilityLineCurrentY + cheight(9)) - specialBContext.font = cwidth(38) + "px mplantin" - specialBContext.fillStyle = "black" - specialBContext.fillText(":", cwidth(125), abilityLineCurrentY + cheight(5)) - } - - } - abilityLineCurrentY += abilityIconSpacing - } - drawCard() -} - -setTimeout(function() {planeswalkerAbilityLines()}, 500) -document.getElementById("cmmPlaneswalker").style.display = "block" \ No newline at end of file diff --git a/old/data/borders/planeswalker/colorless/altFrame.png b/old/data/borders/planeswalker/colorless/altFrame.png deleted file mode 100644 index 6cf1d33e..00000000 Binary files a/old/data/borders/planeswalker/colorless/altFrame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/colorless/frame.png b/old/data/borders/planeswalker/colorless/frame.png deleted file mode 100644 index 5ee85c3d..00000000 Binary files a/old/data/borders/planeswalker/colorless/frame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/colorless/pt.png b/old/data/borders/planeswalker/colorless/pt.png deleted file mode 100644 index 3ca7595c..00000000 Binary files a/old/data/borders/planeswalker/colorless/pt.png and /dev/null differ diff --git a/old/data/borders/planeswalker/colorless/stamp.png b/old/data/borders/planeswalker/colorless/stamp.png deleted file mode 100644 index 02c868ca..00000000 Binary files a/old/data/borders/planeswalker/colorless/stamp.png and /dev/null differ diff --git a/old/data/borders/planeswalker/gold/altFrame.png b/old/data/borders/planeswalker/gold/altFrame.png deleted file mode 100644 index 62bd37e3..00000000 Binary files a/old/data/borders/planeswalker/gold/altFrame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/gold/frame.png b/old/data/borders/planeswalker/gold/frame.png deleted file mode 100644 index b389bfb0..00000000 Binary files a/old/data/borders/planeswalker/gold/frame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/gold/pt.png b/old/data/borders/planeswalker/gold/pt.png deleted file mode 100644 index 3ca7595c..00000000 Binary files a/old/data/borders/planeswalker/gold/pt.png and /dev/null differ diff --git a/old/data/borders/planeswalker/gold/stamp.png b/old/data/borders/planeswalker/gold/stamp.png deleted file mode 100644 index 6a130e0a..00000000 Binary files a/old/data/borders/planeswalker/gold/stamp.png and /dev/null differ diff --git a/old/data/borders/planeswalker/green/altFrame.png b/old/data/borders/planeswalker/green/altFrame.png deleted file mode 100644 index 2ddb1b2a..00000000 Binary files a/old/data/borders/planeswalker/green/altFrame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/green/frame.png b/old/data/borders/planeswalker/green/frame.png deleted file mode 100644 index 50bca226..00000000 Binary files a/old/data/borders/planeswalker/green/frame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/green/pt.png b/old/data/borders/planeswalker/green/pt.png deleted file mode 100644 index 3ca7595c..00000000 Binary files a/old/data/borders/planeswalker/green/pt.png and /dev/null differ diff --git a/old/data/borders/planeswalker/green/stamp.png b/old/data/borders/planeswalker/green/stamp.png deleted file mode 100644 index 18f40cba..00000000 Binary files a/old/data/borders/planeswalker/green/stamp.png and /dev/null differ diff --git a/old/data/borders/planeswalker/imgAbilityLineEven.png b/old/data/borders/planeswalker/imgAbilityLineEven.png deleted file mode 100644 index f2c2eac4..00000000 Binary files a/old/data/borders/planeswalker/imgAbilityLineEven.png and /dev/null differ diff --git a/old/data/borders/planeswalker/imgAbilityLineOdd.png b/old/data/borders/planeswalker/imgAbilityLineOdd.png deleted file mode 100644 index 530da6e1..00000000 Binary files a/old/data/borders/planeswalker/imgAbilityLineOdd.png and /dev/null differ diff --git a/old/data/borders/planeswalker/imgArtMask.png b/old/data/borders/planeswalker/imgArtMask.png deleted file mode 100644 index c9c59c1b..00000000 Binary files a/old/data/borders/planeswalker/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/planeswalker/imgBorderMask.png b/old/data/borders/planeswalker/imgBorderMask.png deleted file mode 100644 index 16dbc1fe..00000000 Binary files a/old/data/borders/planeswalker/imgBorderMask.png and /dev/null differ diff --git a/old/data/borders/planeswalker/imgFrameMask.png b/old/data/borders/planeswalker/imgFrameMask.png deleted file mode 100644 index a4efdd9e..00000000 Binary files a/old/data/borders/planeswalker/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/planeswalker/imgPinlineMask.png b/old/data/borders/planeswalker/imgPinlineMask.png deleted file mode 100644 index 5638e538..00000000 Binary files a/old/data/borders/planeswalker/imgPinlineMask.png and /dev/null differ diff --git a/old/data/borders/planeswalker/imgTitleMask.png b/old/data/borders/planeswalker/imgTitleMask.png deleted file mode 100644 index bfa8f52a..00000000 Binary files a/old/data/borders/planeswalker/imgTitleMask.png and /dev/null differ diff --git a/old/data/borders/planeswalker/imgTypeMask.png b/old/data/borders/planeswalker/imgTypeMask.png deleted file mode 100644 index 849deff2..00000000 Binary files a/old/data/borders/planeswalker/imgTypeMask.png and /dev/null differ diff --git a/old/data/borders/planeswalker/rareStampMask.png b/old/data/borders/planeswalker/rareStampMask.png deleted file mode 100644 index 96d78d86..00000000 Binary files a/old/data/borders/planeswalker/rareStampMask.png and /dev/null differ diff --git a/old/data/borders/planeswalker/red/altFrame.png b/old/data/borders/planeswalker/red/altFrame.png deleted file mode 100644 index e65ba8fb..00000000 Binary files a/old/data/borders/planeswalker/red/altFrame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/red/frame.png b/old/data/borders/planeswalker/red/frame.png deleted file mode 100644 index 6d813ad5..00000000 Binary files a/old/data/borders/planeswalker/red/frame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/red/pt.png b/old/data/borders/planeswalker/red/pt.png deleted file mode 100644 index 3ca7595c..00000000 Binary files a/old/data/borders/planeswalker/red/pt.png and /dev/null differ diff --git a/old/data/borders/planeswalker/red/stamp.png b/old/data/borders/planeswalker/red/stamp.png deleted file mode 100644 index 598c4c55..00000000 Binary files a/old/data/borders/planeswalker/red/stamp.png and /dev/null differ diff --git a/old/data/borders/planeswalker/white/altFrame.png b/old/data/borders/planeswalker/white/altFrame.png deleted file mode 100644 index 4e0e0fd0..00000000 Binary files a/old/data/borders/planeswalker/white/altFrame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/white/frame.png b/old/data/borders/planeswalker/white/frame.png deleted file mode 100644 index bc95f9ef..00000000 Binary files a/old/data/borders/planeswalker/white/frame.png and /dev/null differ diff --git a/old/data/borders/planeswalker/white/pt.png b/old/data/borders/planeswalker/white/pt.png deleted file mode 100644 index 3ca7595c..00000000 Binary files a/old/data/borders/planeswalker/white/pt.png and /dev/null differ diff --git a/old/data/borders/planeswalker/white/stamp.png b/old/data/borders/planeswalker/white/stamp.png deleted file mode 100644 index 64ec9bf3..00000000 Binary files a/old/data/borders/planeswalker/white/stamp.png and /dev/null differ diff --git a/old/data/borders/tokenTall/artifact/frame.png b/old/data/borders/tokenTall/artifact/frame.png deleted file mode 100644 index 7b63d276..00000000 Binary files a/old/data/borders/tokenTall/artifact/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTall/artifact/legendary.png b/old/data/borders/tokenTall/artifact/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTall/artifact/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTall/artifact/pt.png b/old/data/borders/tokenTall/artifact/pt.png deleted file mode 100644 index 15d680e6..00000000 Binary files a/old/data/borders/tokenTall/artifact/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTall/black/frame.png b/old/data/borders/tokenTall/black/frame.png deleted file mode 100644 index 87de0a04..00000000 Binary files a/old/data/borders/tokenTall/black/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTall/black/legendary.png b/old/data/borders/tokenTall/black/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTall/black/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTall/black/pt.png b/old/data/borders/tokenTall/black/pt.png deleted file mode 100644 index f4cbdac8..00000000 Binary files a/old/data/borders/tokenTall/black/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTall/blue/frame.png b/old/data/borders/tokenTall/blue/frame.png deleted file mode 100644 index c1ea8042..00000000 Binary files a/old/data/borders/tokenTall/blue/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTall/blue/legendary.png b/old/data/borders/tokenTall/blue/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTall/blue/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTall/blue/pt.png b/old/data/borders/tokenTall/blue/pt.png deleted file mode 100644 index e9f38eea..00000000 Binary files a/old/data/borders/tokenTall/blue/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTall/border.js b/old/data/borders/tokenTall/border.js deleted file mode 100644 index 1f8b9cdb..00000000 --- a/old/data/borders/tokenTall/border.js +++ /dev/null @@ -1,27 +0,0 @@ -//============================================// -// Full Art Land M15 Border // -//============================================// -//General Booleans -cardData.miracle = false -cardData.nyx = false -cardData.rareStamp = false -//Specific Values -cardData.cardArtX = cwidth(56) -cardData.cardArtY = cheight(124) -cardData.manaSymbolDirection = "none" -document.getElementById("inputTitleColor").value = "#ffe886" -cardData.titleAlignment = "center" -cardData.titleFont = "belerenbsc" -//Images -imgArtMask.load("data/borders/tokenTall/imgArtMask.png") -imgFrameMask.load("data/borders/tokenTall/imgFrameMask.png") -imgPinlineMask.load("data/borders/tokenTall/imgPinlineMask.png") -imgTitleMask.load("data/borders/tokenTall/imgTitleMask.png") -imgTypeMask.load("data/borders/tokenTall/imgTypeMask.png") -imgRulesMask.load("data/borders/tokenTall/imgRulesMask.png") -imgLegendary.load("none", cwidth(26), cheight(20), cwidth(697), cheight(112)) -imgLegendaryRight.load("none", cwidth(26), cheight(20), cwidth(697), cheight(112)) -//Loads the Colors -loadColors("white-White,blue-Blue,black-Black,red-Red,green-Green,gold-Gold,artifact-Artifact,colorless-Colorless") -//Finishes loading the border style -finishChangingBorder() \ No newline at end of file diff --git a/old/data/borders/tokenTall/colorless/frame.png b/old/data/borders/tokenTall/colorless/frame.png deleted file mode 100644 index a916c81b..00000000 Binary files a/old/data/borders/tokenTall/colorless/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTall/colorless/legendary.png b/old/data/borders/tokenTall/colorless/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTall/colorless/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTall/colorless/pt.png b/old/data/borders/tokenTall/colorless/pt.png deleted file mode 100644 index da5f62b2..00000000 Binary files a/old/data/borders/tokenTall/colorless/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTall/gold/frame.png b/old/data/borders/tokenTall/gold/frame.png deleted file mode 100644 index 245b0043..00000000 Binary files a/old/data/borders/tokenTall/gold/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTall/gold/legendary.png b/old/data/borders/tokenTall/gold/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTall/gold/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTall/gold/pt.png b/old/data/borders/tokenTall/gold/pt.png deleted file mode 100644 index 163d7330..00000000 Binary files a/old/data/borders/tokenTall/gold/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTall/green/frame.png b/old/data/borders/tokenTall/green/frame.png deleted file mode 100644 index 1b53a5ad..00000000 Binary files a/old/data/borders/tokenTall/green/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTall/green/legendary.png b/old/data/borders/tokenTall/green/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTall/green/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTall/green/pt.png b/old/data/borders/tokenTall/green/pt.png deleted file mode 100644 index 374dc86a..00000000 Binary files a/old/data/borders/tokenTall/green/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTall/imgArtMask.png b/old/data/borders/tokenTall/imgArtMask.png deleted file mode 100644 index 533978dc..00000000 Binary files a/old/data/borders/tokenTall/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/tokenTall/imgFrameMask.png b/old/data/borders/tokenTall/imgFrameMask.png deleted file mode 100644 index d772a785..00000000 Binary files a/old/data/borders/tokenTall/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/tokenTall/imgPinlineMask.png b/old/data/borders/tokenTall/imgPinlineMask.png deleted file mode 100644 index 30f248ca..00000000 Binary files a/old/data/borders/tokenTall/imgPinlineMask.png and /dev/null differ diff --git a/old/data/borders/tokenTall/imgRulesMask.png b/old/data/borders/tokenTall/imgRulesMask.png deleted file mode 100644 index 5b5a220e..00000000 Binary files a/old/data/borders/tokenTall/imgRulesMask.png and /dev/null differ diff --git a/old/data/borders/tokenTall/imgTitleMask.png b/old/data/borders/tokenTall/imgTitleMask.png deleted file mode 100644 index 00f73395..00000000 Binary files a/old/data/borders/tokenTall/imgTitleMask.png and /dev/null differ diff --git a/old/data/borders/tokenTall/imgTypeMask.png b/old/data/borders/tokenTall/imgTypeMask.png deleted file mode 100644 index 7de44416..00000000 Binary files a/old/data/borders/tokenTall/imgTypeMask.png and /dev/null differ diff --git a/old/data/borders/tokenTall/red/frame.png b/old/data/borders/tokenTall/red/frame.png deleted file mode 100644 index e0a67200..00000000 Binary files a/old/data/borders/tokenTall/red/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTall/red/legendary.png b/old/data/borders/tokenTall/red/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTall/red/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTall/red/pt.png b/old/data/borders/tokenTall/red/pt.png deleted file mode 100644 index 255cf8b8..00000000 Binary files a/old/data/borders/tokenTall/red/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTall/white/frame.png b/old/data/borders/tokenTall/white/frame.png deleted file mode 100644 index b73a7ad2..00000000 Binary files a/old/data/borders/tokenTall/white/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTall/white/legendary.png b/old/data/borders/tokenTall/white/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTall/white/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTall/white/pt.png b/old/data/borders/tokenTall/white/pt.png deleted file mode 100644 index 6480a390..00000000 Binary files a/old/data/borders/tokenTall/white/pt.png and /dev/null differ diff --git a/old/data/borders/tokenText/artifact/frame.png b/old/data/borders/tokenText/artifact/frame.png deleted file mode 100644 index debb518f..00000000 Binary files a/old/data/borders/tokenText/artifact/frame.png and /dev/null differ diff --git a/old/data/borders/tokenText/artifact/legendary.png b/old/data/borders/tokenText/artifact/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenText/artifact/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenText/artifact/nyx.png b/old/data/borders/tokenText/artifact/nyx.png deleted file mode 100644 index 3f9ad1ce..00000000 Binary files a/old/data/borders/tokenText/artifact/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenText/artifact/pt.png b/old/data/borders/tokenText/artifact/pt.png deleted file mode 100644 index 15d680e6..00000000 Binary files a/old/data/borders/tokenText/artifact/pt.png and /dev/null differ diff --git a/old/data/borders/tokenText/black/frame.png b/old/data/borders/tokenText/black/frame.png deleted file mode 100644 index 66b284b2..00000000 Binary files a/old/data/borders/tokenText/black/frame.png and /dev/null differ diff --git a/old/data/borders/tokenText/black/legendary.png b/old/data/borders/tokenText/black/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenText/black/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenText/black/nyx.png b/old/data/borders/tokenText/black/nyx.png deleted file mode 100644 index 43fea9ea..00000000 Binary files a/old/data/borders/tokenText/black/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenText/black/pt.png b/old/data/borders/tokenText/black/pt.png deleted file mode 100644 index f4cbdac8..00000000 Binary files a/old/data/borders/tokenText/black/pt.png and /dev/null differ diff --git a/old/data/borders/tokenText/blue/frame.png b/old/data/borders/tokenText/blue/frame.png deleted file mode 100644 index d18a337e..00000000 Binary files a/old/data/borders/tokenText/blue/frame.png and /dev/null differ diff --git a/old/data/borders/tokenText/blue/legendary.png b/old/data/borders/tokenText/blue/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenText/blue/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenText/blue/nyx.png b/old/data/borders/tokenText/blue/nyx.png deleted file mode 100644 index 22623796..00000000 Binary files a/old/data/borders/tokenText/blue/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenText/blue/pt.png b/old/data/borders/tokenText/blue/pt.png deleted file mode 100644 index e9f38eea..00000000 Binary files a/old/data/borders/tokenText/blue/pt.png and /dev/null differ diff --git a/old/data/borders/tokenText/border.js b/old/data/borders/tokenText/border.js deleted file mode 100644 index 45dc86c4..00000000 --- a/old/data/borders/tokenText/border.js +++ /dev/null @@ -1,30 +0,0 @@ -//============================================// -// Full Art Land M15 Border // -//============================================// -//General Booleans -cardData.miracle = false -cardData.nyx = false -cardData.rareStamp = false -//Specific Values -cardData.cardArtX = cwidth(56) -cardData.cardArtY = cheight(124) -cardData.manaSymbolDirection = "none" -document.getElementById("inputTitleColor").value = "#ffe886" -cardData.titleAlignment = "center" -cardData.titleFont = "belerenbsc" -cardData.typeY = cheight(751) -cardData.setSymbolY = cheight(739) -cardData.textY = cheight(808) -//Images -imgArtMask.load("data/borders/tokenText/imgArtMask.png") -imgFrameMask.load("data/borders/tokenText/imgFrameMask.png") -imgPinlineMask.load("data/borders/tokenText/imgPinlineMask.png") -imgTitleMask.load("data/borders/tokenText/imgTitleMask.png") -imgTypeMask.load("data/borders/tokenText/imgTypeMask.png") -imgRulesMask.load("data/borders/tokenText/imgRulesMask.png") -imgLegendary.load("none", cwidth(26), cheight(20), cwidth(697), cheight(112)) -imgLegendaryRight.load("none", cwidth(26), cheight(20), cwidth(697), cheight(112)) -//Loads the Colors -loadColors("white-White,blue-Blue,black-Black,red-Red,green-Green,gold-Gold,artifact-Artifact,colorless-Colorless") -//Finishes loading the border style -finishChangingBorder() \ No newline at end of file diff --git a/old/data/borders/tokenText/colorless/frame.png b/old/data/borders/tokenText/colorless/frame.png deleted file mode 100644 index 51720d48..00000000 Binary files a/old/data/borders/tokenText/colorless/frame.png and /dev/null differ diff --git a/old/data/borders/tokenText/colorless/legendary.png b/old/data/borders/tokenText/colorless/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenText/colorless/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenText/colorless/nyx.png b/old/data/borders/tokenText/colorless/nyx.png deleted file mode 100644 index a4e11bc2..00000000 Binary files a/old/data/borders/tokenText/colorless/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenText/colorless/pt.png b/old/data/borders/tokenText/colorless/pt.png deleted file mode 100644 index da5f62b2..00000000 Binary files a/old/data/borders/tokenText/colorless/pt.png and /dev/null differ diff --git a/old/data/borders/tokenText/gold/frame.png b/old/data/borders/tokenText/gold/frame.png deleted file mode 100644 index 2e2fe9fd..00000000 Binary files a/old/data/borders/tokenText/gold/frame.png and /dev/null differ diff --git a/old/data/borders/tokenText/gold/legendary.png b/old/data/borders/tokenText/gold/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenText/gold/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenText/gold/nyx.png b/old/data/borders/tokenText/gold/nyx.png deleted file mode 100644 index c880f573..00000000 Binary files a/old/data/borders/tokenText/gold/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenText/gold/pt.png b/old/data/borders/tokenText/gold/pt.png deleted file mode 100644 index 163d7330..00000000 Binary files a/old/data/borders/tokenText/gold/pt.png and /dev/null differ diff --git a/old/data/borders/tokenText/green/frame.png b/old/data/borders/tokenText/green/frame.png deleted file mode 100644 index 6b5bc064..00000000 Binary files a/old/data/borders/tokenText/green/frame.png and /dev/null differ diff --git a/old/data/borders/tokenText/green/legendary.png b/old/data/borders/tokenText/green/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenText/green/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenText/green/nyx.png b/old/data/borders/tokenText/green/nyx.png deleted file mode 100644 index c04cfb3b..00000000 Binary files a/old/data/borders/tokenText/green/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenText/green/pt.png b/old/data/borders/tokenText/green/pt.png deleted file mode 100644 index 374dc86a..00000000 Binary files a/old/data/borders/tokenText/green/pt.png and /dev/null differ diff --git a/old/data/borders/tokenText/imgArtMask.png b/old/data/borders/tokenText/imgArtMask.png deleted file mode 100644 index a46accd3..00000000 Binary files a/old/data/borders/tokenText/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/tokenText/imgFrameMask.png b/old/data/borders/tokenText/imgFrameMask.png deleted file mode 100644 index 86919f3b..00000000 Binary files a/old/data/borders/tokenText/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/tokenText/imgPinlineMask.png b/old/data/borders/tokenText/imgPinlineMask.png deleted file mode 100644 index c385af1d..00000000 Binary files a/old/data/borders/tokenText/imgPinlineMask.png and /dev/null differ diff --git a/old/data/borders/tokenText/imgRulesMask.png b/old/data/borders/tokenText/imgRulesMask.png deleted file mode 100644 index 96f0eed3..00000000 Binary files a/old/data/borders/tokenText/imgRulesMask.png and /dev/null differ diff --git a/old/data/borders/tokenText/imgTitleMask.png b/old/data/borders/tokenText/imgTitleMask.png deleted file mode 100644 index 00f73395..00000000 Binary files a/old/data/borders/tokenText/imgTitleMask.png and /dev/null differ diff --git a/old/data/borders/tokenText/imgTypeMask.png b/old/data/borders/tokenText/imgTypeMask.png deleted file mode 100644 index 625800d6..00000000 Binary files a/old/data/borders/tokenText/imgTypeMask.png and /dev/null differ diff --git a/old/data/borders/tokenText/red/frame.png b/old/data/borders/tokenText/red/frame.png deleted file mode 100644 index 3f683d32..00000000 Binary files a/old/data/borders/tokenText/red/frame.png and /dev/null differ diff --git a/old/data/borders/tokenText/red/legendary.png b/old/data/borders/tokenText/red/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenText/red/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenText/red/nyx.png b/old/data/borders/tokenText/red/nyx.png deleted file mode 100644 index ff9c69b9..00000000 Binary files a/old/data/borders/tokenText/red/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenText/red/pt.png b/old/data/borders/tokenText/red/pt.png deleted file mode 100644 index 255cf8b8..00000000 Binary files a/old/data/borders/tokenText/red/pt.png and /dev/null differ diff --git a/old/data/borders/tokenText/white/frame.png b/old/data/borders/tokenText/white/frame.png deleted file mode 100644 index dd629887..00000000 Binary files a/old/data/borders/tokenText/white/frame.png and /dev/null differ diff --git a/old/data/borders/tokenText/white/legendary.png b/old/data/borders/tokenText/white/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenText/white/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenText/white/nyx.png b/old/data/borders/tokenText/white/nyx.png deleted file mode 100644 index 52de69d9..00000000 Binary files a/old/data/borders/tokenText/white/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenText/white/pt.png b/old/data/borders/tokenText/white/pt.png deleted file mode 100644 index 6480a390..00000000 Binary files a/old/data/borders/tokenText/white/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/artifact/frame.png b/old/data/borders/tokenTextless/artifact/frame.png deleted file mode 100644 index 18d6f75f..00000000 Binary files a/old/data/borders/tokenTextless/artifact/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/artifact/legendary.png b/old/data/borders/tokenTextless/artifact/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTextless/artifact/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/artifact/nyx.png b/old/data/borders/tokenTextless/artifact/nyx.png deleted file mode 100644 index 3f9ad1ce..00000000 Binary files a/old/data/borders/tokenTextless/artifact/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/artifact/pt.png b/old/data/borders/tokenTextless/artifact/pt.png deleted file mode 100644 index 15d680e6..00000000 Binary files a/old/data/borders/tokenTextless/artifact/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/black/frame.png b/old/data/borders/tokenTextless/black/frame.png deleted file mode 100644 index c47fd916..00000000 Binary files a/old/data/borders/tokenTextless/black/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/black/legendary.png b/old/data/borders/tokenTextless/black/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTextless/black/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/black/nyx.png b/old/data/borders/tokenTextless/black/nyx.png deleted file mode 100644 index 43fea9ea..00000000 Binary files a/old/data/borders/tokenTextless/black/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/black/pt.png b/old/data/borders/tokenTextless/black/pt.png deleted file mode 100644 index f4cbdac8..00000000 Binary files a/old/data/borders/tokenTextless/black/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/blue/frame.png b/old/data/borders/tokenTextless/blue/frame.png deleted file mode 100644 index 651c78d9..00000000 Binary files a/old/data/borders/tokenTextless/blue/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/blue/legendary.png b/old/data/borders/tokenTextless/blue/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTextless/blue/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/blue/nyx.png b/old/data/borders/tokenTextless/blue/nyx.png deleted file mode 100644 index 22623796..00000000 Binary files a/old/data/borders/tokenTextless/blue/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/blue/pt.png b/old/data/borders/tokenTextless/blue/pt.png deleted file mode 100644 index e9f38eea..00000000 Binary files a/old/data/borders/tokenTextless/blue/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/border.js b/old/data/borders/tokenTextless/border.js deleted file mode 100644 index e9a764b1..00000000 --- a/old/data/borders/tokenTextless/border.js +++ /dev/null @@ -1,30 +0,0 @@ -//============================================// -// Full Art Land M15 Border // -//============================================// -//General Booleans -cardData.miracle = false -cardData.nyx = false -cardData.rareStamp = false -cardData.rulesBox = false -//Specific Values -cardData.cardArtX = cwidth(56) -cardData.cardArtY = cheight(124) -cardData.manaSymbolDirection = "none" -document.getElementById("inputTitleColor").value = "#ffe886" -cardData.titleAlignment = "center" -cardData.titleFont = "belerenbsc" -cardData.typeY = cheight(901) -cardData.setSymbolY = cheight(889) -cardData.textY = cheight(296) -//Images -imgArtMask.load("data/borders/tokenTextless/imgArtMask.png") -imgFrameMask.load("data/borders/tokenTextless/imgFrameMask.png") -imgPinlineMask.load("data/borders/tokenTextless/imgPinlineMask.png") -imgTitleMask.load("data/borders/tokenTextless/imgTitleMask.png") -imgTypeMask.load("data/borders/tokenTextless/imgTypeMask.png") -imgLegendary.load("none", cwidth(26), cheight(20), cwidth(697), cheight(112)) -imgLegendaryRight.load("none", cwidth(26), cheight(20), cwidth(697), cheight(112)) -//Loads the Colors -loadColors("white-White,blue-Blue,black-Black,red-Red,green-Green,gold-Gold,artifact-Artifact,colorless-Colorless") -//Finishes loading the border style -finishChangingBorder() \ No newline at end of file diff --git a/old/data/borders/tokenTextless/colorless/frame.png b/old/data/borders/tokenTextless/colorless/frame.png deleted file mode 100644 index d1bf1efd..00000000 Binary files a/old/data/borders/tokenTextless/colorless/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/colorless/legendary.png b/old/data/borders/tokenTextless/colorless/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTextless/colorless/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/colorless/nyx.png b/old/data/borders/tokenTextless/colorless/nyx.png deleted file mode 100644 index a4e11bc2..00000000 Binary files a/old/data/borders/tokenTextless/colorless/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/colorless/pt.png b/old/data/borders/tokenTextless/colorless/pt.png deleted file mode 100644 index da5f62b2..00000000 Binary files a/old/data/borders/tokenTextless/colorless/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/gold/frame.png b/old/data/borders/tokenTextless/gold/frame.png deleted file mode 100644 index 236d5be9..00000000 Binary files a/old/data/borders/tokenTextless/gold/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/gold/legendary.png b/old/data/borders/tokenTextless/gold/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTextless/gold/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/gold/nyx.png b/old/data/borders/tokenTextless/gold/nyx.png deleted file mode 100644 index c880f573..00000000 Binary files a/old/data/borders/tokenTextless/gold/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/gold/pt.png b/old/data/borders/tokenTextless/gold/pt.png deleted file mode 100644 index 163d7330..00000000 Binary files a/old/data/borders/tokenTextless/gold/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/green/frame.png b/old/data/borders/tokenTextless/green/frame.png deleted file mode 100644 index e1c2658f..00000000 Binary files a/old/data/borders/tokenTextless/green/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/green/legendary.png b/old/data/borders/tokenTextless/green/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTextless/green/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/green/nyx.png b/old/data/borders/tokenTextless/green/nyx.png deleted file mode 100644 index c04cfb3b..00000000 Binary files a/old/data/borders/tokenTextless/green/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/green/pt.png b/old/data/borders/tokenTextless/green/pt.png deleted file mode 100644 index 374dc86a..00000000 Binary files a/old/data/borders/tokenTextless/green/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/imgArtMask.png b/old/data/borders/tokenTextless/imgArtMask.png deleted file mode 100644 index 1162ceaf..00000000 Binary files a/old/data/borders/tokenTextless/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/imgFrameMask.png b/old/data/borders/tokenTextless/imgFrameMask.png deleted file mode 100644 index 99abeb3d..00000000 Binary files a/old/data/borders/tokenTextless/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/imgPinlineMask.png b/old/data/borders/tokenTextless/imgPinlineMask.png deleted file mode 100644 index e1dbb7a7..00000000 Binary files a/old/data/borders/tokenTextless/imgPinlineMask.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/imgTitleMask.png b/old/data/borders/tokenTextless/imgTitleMask.png deleted file mode 100644 index 00f73395..00000000 Binary files a/old/data/borders/tokenTextless/imgTitleMask.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/imgTypeMask.png b/old/data/borders/tokenTextless/imgTypeMask.png deleted file mode 100644 index 79f165bf..00000000 Binary files a/old/data/borders/tokenTextless/imgTypeMask.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/red/frame.png b/old/data/borders/tokenTextless/red/frame.png deleted file mode 100644 index 3b0e7249..00000000 Binary files a/old/data/borders/tokenTextless/red/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/red/legendary.png b/old/data/borders/tokenTextless/red/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTextless/red/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/red/nyx.png b/old/data/borders/tokenTextless/red/nyx.png deleted file mode 100644 index ff9c69b9..00000000 Binary files a/old/data/borders/tokenTextless/red/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/red/pt.png b/old/data/borders/tokenTextless/red/pt.png deleted file mode 100644 index 255cf8b8..00000000 Binary files a/old/data/borders/tokenTextless/red/pt.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/white/frame.png b/old/data/borders/tokenTextless/white/frame.png deleted file mode 100644 index 125c2e81..00000000 Binary files a/old/data/borders/tokenTextless/white/frame.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/white/legendary.png b/old/data/borders/tokenTextless/white/legendary.png deleted file mode 100644 index 7739d5e1..00000000 Binary files a/old/data/borders/tokenTextless/white/legendary.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/white/nyx.png b/old/data/borders/tokenTextless/white/nyx.png deleted file mode 100644 index 52de69d9..00000000 Binary files a/old/data/borders/tokenTextless/white/nyx.png and /dev/null differ diff --git a/old/data/borders/tokenTextless/white/pt.png b/old/data/borders/tokenTextless/white/pt.png deleted file mode 100644 index 6480a390..00000000 Binary files a/old/data/borders/tokenTextless/white/pt.png and /dev/null differ diff --git a/old/data/borders/vanguard/blue/frame.png b/old/data/borders/vanguard/blue/frame.png deleted file mode 100644 index f42b4dd3..00000000 Binary files a/old/data/borders/vanguard/blue/frame.png and /dev/null differ diff --git a/old/data/borders/vanguard/border.js b/old/data/borders/vanguard/border.js deleted file mode 100644 index b4a6e607..00000000 --- a/old/data/borders/vanguard/border.js +++ /dev/null @@ -1,56 +0,0 @@ -//============================================// -// Vanguard Border // -//============================================// -//General Booleans -cardData.miracle = false -cardData.nyx = false -cardData.legendary = false -cardData.creature = false -cardData.rareStamp = false -//Specific Values -cardData.bottomInfoFunction = "bottomInfoVanguard" -cardData.cardArtX = cwidth(92) -cardData.cardArtY = cheight(113) -cardData.manaSymbolDirection = "none" -cardData.setSymbolAlignment = "none" -cardData.titleFont = "matrixb" -cardData.titleFontSize = cwidth(54) -cardData.titleX = cwidth(130) -cardData.titleWidth = cwidth(490) -cardData.titleY = cheight(98) -cardData.titleAlignment = "center" -cardData.typeFont = "matrix" -cardData.typeFontSize = cwidth(32) -cardData.typeX = cwidth(130) -cardData.typeWidth = cwidth(490) -cardData.typeY = cheight(640) -cardData.typeAlignment = "center" -cardData.textX = cwidth(135) -cardData.textWidth = cwidth(480) -//Images -imgArtMask.load("data/borders/vanguard/imgArtMask.png") -imgFrameMask.load("data/borders/vanguard/imgFrameMask.png") -imgRulesMask.load("data/borders/vanguard/imgRulesMask.png") -imgBorderMask.load("data/borders/vanguard/imgBorderMask.png") -//Loads the Colors -loadColors("white-White,blue-Blue,red-Red,green-Green") -//Finishes loading the border style -document.getElementById("cmmVanguard").style.display = "block" -document.getElementById("inputTextSize").value = 28 -finishChangingBorder() - -function bottomInfoVanguard() { - var infoArtist = "Illus. " + document.getElementById("inputInfoArtist").value - var copyrightNumber = "\u2122 & \u00a9 1993-" + date.getFullYear() + " Wizards of the Coast, Inc. *Not For Sale*" //+ document.getElementById("inputInfoNumber").value - textContext.textAlign = "center" - textContext.fillStyle = "black" - textContext.font = "17px mplantin" - textContext.fillText(infoArtist, cwidth(377), cheight(949)) - textContext.font = "13px mplantin" - textContext.fillText(copyrightNumber, cwidth(375), cheight(963)) - //special vanguard fun! - textContext.font = "31px mplantin" - textContext.fillText(document.getElementById("inputVanguardHand").value, cwidth(107), cheight(910)) - textContext.fillText(document.getElementById("inputVanguardLife").value, cwidth(642), cheight(909)) - drawCard() -} \ No newline at end of file diff --git a/old/data/borders/vanguard/green/frame.png b/old/data/borders/vanguard/green/frame.png deleted file mode 100644 index b67ed024..00000000 Binary files a/old/data/borders/vanguard/green/frame.png and /dev/null differ diff --git a/old/data/borders/vanguard/imgArtMask.png b/old/data/borders/vanguard/imgArtMask.png deleted file mode 100644 index ba699487..00000000 Binary files a/old/data/borders/vanguard/imgArtMask.png and /dev/null differ diff --git a/old/data/borders/vanguard/imgBorderMask.png b/old/data/borders/vanguard/imgBorderMask.png deleted file mode 100644 index 066f7683..00000000 Binary files a/old/data/borders/vanguard/imgBorderMask.png and /dev/null differ diff --git a/old/data/borders/vanguard/imgFrameMask.png b/old/data/borders/vanguard/imgFrameMask.png deleted file mode 100644 index 6828dfd8..00000000 Binary files a/old/data/borders/vanguard/imgFrameMask.png and /dev/null differ diff --git a/old/data/borders/vanguard/imgRulesMask.png b/old/data/borders/vanguard/imgRulesMask.png deleted file mode 100644 index 911e4690..00000000 Binary files a/old/data/borders/vanguard/imgRulesMask.png and /dev/null differ diff --git a/old/data/borders/vanguard/red/frame.png b/old/data/borders/vanguard/red/frame.png deleted file mode 100644 index bb2da66f..00000000 Binary files a/old/data/borders/vanguard/red/frame.png and /dev/null differ diff --git a/old/data/borders/vanguard/white/frame.png b/old/data/borders/vanguard/white/frame.png deleted file mode 100644 index 2734d63f..00000000 Binary files a/old/data/borders/vanguard/white/frame.png and /dev/null differ diff --git a/old/data/borders/vanguard/white/ref.png b/old/data/borders/vanguard/white/ref.png deleted file mode 100644 index e5ec95dc..00000000 Binary files a/old/data/borders/vanguard/white/ref.png and /dev/null differ diff --git a/old/data/fonts/beleren-b.ttf b/old/data/fonts/beleren-b.ttf deleted file mode 100644 index 979b66c6..00000000 Binary files a/old/data/fonts/beleren-b.ttf and /dev/null differ diff --git a/old/data/fonts/beleren-bsc.ttf b/old/data/fonts/beleren-bsc.ttf deleted file mode 100644 index 53695db9..00000000 Binary files a/old/data/fonts/beleren-bsc.ttf and /dev/null differ diff --git a/old/data/fonts/gotham-medium.ttf b/old/data/fonts/gotham-medium.ttf deleted file mode 100644 index fd822114..00000000 Binary files a/old/data/fonts/gotham-medium.ttf and /dev/null differ diff --git a/old/data/fonts/goudy-medieval.ttf b/old/data/fonts/goudy-medieval.ttf deleted file mode 100644 index 3f0c59e3..00000000 Binary files a/old/data/fonts/goudy-medieval.ttf and /dev/null differ diff --git a/old/data/fonts/goudy-medieval/Goudy Mediaeval DemiBold.ttf b/old/data/fonts/goudy-medieval/Goudy Mediaeval DemiBold.ttf deleted file mode 100644 index 67667056..00000000 Binary files a/old/data/fonts/goudy-medieval/Goudy Mediaeval DemiBold.ttf and /dev/null differ diff --git a/old/data/fonts/goudy-medieval/Goudy Mediaeval Regular.ttf b/old/data/fonts/goudy-medieval/Goudy Mediaeval Regular.ttf deleted file mode 100644 index 3f0c59e3..00000000 Binary files a/old/data/fonts/goudy-medieval/Goudy Mediaeval Regular.ttf and /dev/null differ diff --git a/old/data/fonts/goudy-medieval/Goudy Medieval Alternate.ttf b/old/data/fonts/goudy-medieval/Goudy Medieval Alternate.ttf deleted file mode 100644 index 58813bff..00000000 Binary files a/old/data/fonts/goudy-medieval/Goudy Medieval Alternate.ttf and /dev/null differ diff --git a/old/data/fonts/matrix-b.ttf b/old/data/fonts/matrix-b.ttf deleted file mode 100644 index 855e51f9..00000000 Binary files a/old/data/fonts/matrix-b.ttf and /dev/null differ diff --git a/old/data/fonts/matrix-bsc.ttf b/old/data/fonts/matrix-bsc.ttf deleted file mode 100644 index 326e007b..00000000 Binary files a/old/data/fonts/matrix-bsc.ttf and /dev/null differ diff --git a/old/data/fonts/matrix.ttf b/old/data/fonts/matrix.ttf deleted file mode 100644 index c9b5e105..00000000 Binary files a/old/data/fonts/matrix.ttf and /dev/null differ diff --git a/old/data/fonts/mplantin-i.ttf b/old/data/fonts/mplantin-i.ttf deleted file mode 100644 index 5755831c..00000000 Binary files a/old/data/fonts/mplantin-i.ttf and /dev/null differ diff --git a/old/data/fonts/mplantin.ttf b/old/data/fonts/mplantin.ttf deleted file mode 100644 index 116529ef..00000000 Binary files a/old/data/fonts/mplantin.ttf and /dev/null differ diff --git a/old/data/fonts/relay-medium.ttf b/old/data/fonts/relay-medium.ttf deleted file mode 100644 index a0f595b3..00000000 Binary files a/old/data/fonts/relay-medium.ttf and /dev/null differ diff --git a/old/data/icons/artifact.png b/old/data/icons/artifact.png deleted file mode 100644 index 44fdac90..00000000 Binary files a/old/data/icons/artifact.png and /dev/null differ diff --git a/old/data/icons/blank.png b/old/data/icons/blank.png deleted file mode 100644 index 0ac01337..00000000 Binary files a/old/data/icons/blank.png and /dev/null differ diff --git a/old/data/icons/compass.png b/old/data/icons/compass.png deleted file mode 100644 index 6280e620..00000000 Binary files a/old/data/icons/compass.png and /dev/null differ diff --git a/old/data/icons/creature.png b/old/data/icons/creature.png deleted file mode 100644 index 3aabf62a..00000000 Binary files a/old/data/icons/creature.png and /dev/null differ diff --git a/old/data/icons/day.png b/old/data/icons/day.png deleted file mode 100644 index 71189d94..00000000 Binary files a/old/data/icons/day.png and /dev/null differ diff --git a/old/data/icons/eldrazi.png b/old/data/icons/eldrazi.png deleted file mode 100644 index 6dbb1bc2..00000000 Binary files a/old/data/icons/eldrazi.png and /dev/null differ diff --git a/old/data/icons/enchantment.png b/old/data/icons/enchantment.png deleted file mode 100644 index 9dddf8f6..00000000 Binary files a/old/data/icons/enchantment.png and /dev/null differ diff --git a/old/data/icons/instant.png b/old/data/icons/instant.png deleted file mode 100644 index 834033d2..00000000 Binary files a/old/data/icons/instant.png and /dev/null differ diff --git a/old/data/icons/land.png b/old/data/icons/land.png deleted file mode 100644 index 74a74eab..00000000 Binary files a/old/data/icons/land.png and /dev/null differ diff --git a/old/data/icons/moon.png b/old/data/icons/moon.png deleted file mode 100644 index 3774d5cf..00000000 Binary files a/old/data/icons/moon.png and /dev/null differ diff --git a/old/data/icons/multitype.png b/old/data/icons/multitype.png deleted file mode 100644 index 48cfa783..00000000 Binary files a/old/data/icons/multitype.png and /dev/null differ diff --git a/old/data/icons/night.png b/old/data/icons/night.png deleted file mode 100644 index dab6f4bf..00000000 Binary files a/old/data/icons/night.png and /dev/null differ diff --git a/old/data/icons/planeshift.png b/old/data/icons/planeshift.png deleted file mode 100644 index bf1a14cb..00000000 Binary files a/old/data/icons/planeshift.png and /dev/null differ diff --git a/old/data/icons/planeswalker.png b/old/data/icons/planeswalker.png deleted file mode 100644 index becc1933..00000000 Binary files a/old/data/icons/planeswalker.png and /dev/null differ diff --git a/old/data/icons/sorcery.png b/old/data/icons/sorcery.png deleted file mode 100644 index 24d3a40f..00000000 Binary files a/old/data/icons/sorcery.png and /dev/null differ diff --git a/old/data/icons/structure.png b/old/data/icons/structure.png deleted file mode 100644 index 89ed9a4e..00000000 Binary files a/old/data/icons/structure.png and /dev/null differ diff --git a/old/data/life/NoSleep.js b/old/data/life/NoSleep.js deleted file mode 100644 index 9453d5fe..00000000 --- a/old/data/life/NoSleep.js +++ /dev/null @@ -1,192 +0,0 @@ -/*! NoSleep.js v0.9.0 - git.io/vfn01 - Rich Tibbett - MIT license */ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["NoSleep"] = factory(); - else - root["NoSleep"] = factory(); - })(typeof self !== 'undefined' ? self : this, function() { - return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - var _require = __webpack_require__(1), - webm = _require.webm, - mp4 = _require.mp4; - - // Detect iOS browsers < version 10 - - - var oldIOS = typeof navigator !== 'undefined' && parseFloat(('' + (/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0, ''])[1]).replace('undefined', '3_2').replace('_', '.').replace('_', '')) < 10 && !window.MSStream; - - var NoSleep = function () { - function NoSleep() { - var _this = this; - - _classCallCheck(this, NoSleep); - - if (oldIOS) { - this.noSleepTimer = null; - } else { - // Set up no sleep video element - this.noSleepVideo = document.createElement('video'); - - this.noSleepVideo.setAttribute('muted', ''); - this.noSleepVideo.setAttribute('title', 'No Sleep'); - this.noSleepVideo.setAttribute('playsinline', ''); - - this._addSourceToVideo(this.noSleepVideo, 'webm', webm); - this._addSourceToVideo(this.noSleepVideo, 'mp4', mp4); - - this.noSleepVideo.addEventListener('loadedmetadata', function () { - if (_this.noSleepVideo.duration <= 1) { - // webm source - _this.noSleepVideo.setAttribute('loop', ''); - } else { - // mp4 source - _this.noSleepVideo.addEventListener('timeupdate', function () { - if (_this.noSleepVideo.currentTime > 0.5) { - _this.noSleepVideo.currentTime = Math.random(); - } - }); - } - }); - } - } - - _createClass(NoSleep, [{ - key: '_addSourceToVideo', - value: function _addSourceToVideo(element, type, dataURI) { - var source = document.createElement('source'); - source.src = dataURI; - source.type = 'video/' + type; - element.appendChild(source); - } - }, { - key: 'enable', - value: function enable() { - if (oldIOS) { - this.disable(); - console.warn('\n NoSleep enabled for older iOS devices. This can interrupt\n active or long-running network requests from completing successfully.\n See https://github.com/richtr/NoSleep.js/issues/15 for more details.\n '); - this.noSleepTimer = window.setInterval(function () { - if (!document.hidden) { - window.location.href = window.location.href.split('#')[0]; - window.setTimeout(window.stop, 0); - } - }, 15000); - } else { - this.noSleepVideo.play(); - } - } - }, { - key: 'disable', - value: function disable() { - if (oldIOS) { - if (this.noSleepTimer) { - console.warn('\n NoSleep now disabled for older iOS devices.\n '); - window.clearInterval(this.noSleepTimer); - this.noSleepTimer = null; - } - } else { - this.noSleepVideo.pause(); - } - } - }]); - - return NoSleep; - }(); - - ; - - module.exports = NoSleep; - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - module.exports = { - webm: 'data:video/webm;base64,GkXfo0AgQoaBAUL3gQFC8oEEQvOBCEKCQAR3ZWJtQoeBAkKFgQIYU4BnQI0VSalmQCgq17FAAw9CQE2AQAZ3aGFtbXlXQUAGd2hhbW15RIlACECPQAAAAAAAFlSua0AxrkAu14EBY8WBAZyBACK1nEADdW5khkAFVl9WUDglhohAA1ZQOIOBAeBABrCBCLqBCB9DtnVAIueBAKNAHIEAAIAwAQCdASoIAAgAAUAmJaQAA3AA/vz0AAA=', - mp4: 'data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQADQGgcIQADQGgcAAAACQGeYUQn/wALKCEAA0BoHAAAAAkBnmNEJ/8ACykhAANAaBwhAANAaBwAAAANQZpoNExDP/6plgAMuSEAA0BoHAAAAAtBnoZFESwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBnqVEJ/8ACykhAANAaBwAAAAJAZ6nRCf/AAsoIQADQGgcIQADQGgcAAAADUGarDRMQz/+qZYADLghAANAaBwAAAALQZ7KRRUsK/8ACPkhAANAaBwAAAAJAZ7pRCf/AAsoIQADQGgcIQADQGgcAAAACQGe60Qn/wALKCEAA0BoHAAAAA1BmvA0TEM//qmWAAy5IQADQGgcIQADQGgcAAAAC0GfDkUVLCv/AAj5IQADQGgcAAAACQGfLUQn/wALKSEAA0BoHCEAA0BoHAAAAAkBny9EJ/8ACyghAANAaBwAAAANQZs0NExDP/6plgAMuCEAA0BoHAAAAAtBn1JFFSwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBn3FEJ/8ACyghAANAaBwAAAAJAZ9zRCf/AAsoIQADQGgcIQADQGgcAAAADUGbeDRMQz/+qZYADLkhAANAaBwAAAALQZ+WRRUsK/8ACPghAANAaBwhAANAaBwAAAAJAZ+1RCf/AAspIQADQGgcAAAACQGft0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bm7w0TEM//qmWAAy4IQADQGgcAAAAC0Gf2kUVLCv/AAj5IQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHAAAAAkBn/tEJ/8ACykhAANAaBwAAAANQZvgNExDP/6plgAMuSEAA0BoHCEAA0BoHAAAAAtBnh5FFSwr/wAI+CEAA0BoHAAAAAkBnj1EJ/8ACyghAANAaBwhAANAaBwAAAAJAZ4/RCf/AAspIQADQGgcAAAADUGaJDRMQz/+qZYADLghAANAaBwAAAALQZ5CRRUsK/8ACPkhAANAaBwhAANAaBwAAAAJAZ5hRCf/AAsoIQADQGgcAAAACQGeY0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bmmg0TEM//qmWAAy5IQADQGgcAAAAC0GehkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGepUQn/wALKSEAA0BoHAAAAAkBnqdEJ/8ACyghAANAaBwAAAANQZqsNExDP/6plgAMuCEAA0BoHCEAA0BoHAAAAAtBnspFFSwr/wAI+SEAA0BoHAAAAAkBnulEJ/8ACyghAANAaBwhAANAaBwAAAAJAZ7rRCf/AAsoIQADQGgcAAAADUGa8DRMQz/+qZYADLkhAANAaBwhAANAaBwAAAALQZ8ORRUsK/8ACPkhAANAaBwAAAAJAZ8tRCf/AAspIQADQGgcIQADQGgcAAAACQGfL0Qn/wALKCEAA0BoHAAAAA1BmzQ0TEM//qmWAAy4IQADQGgcAAAAC0GfUkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGfcUQn/wALKCEAA0BoHAAAAAkBn3NEJ/8ACyghAANAaBwhAANAaBwAAAANQZt4NExC//6plgAMuSEAA0BoHAAAAAtBn5ZFFSwr/wAI+CEAA0BoHCEAA0BoHAAAAAkBn7VEJ/8ACykhAANAaBwAAAAJAZ+3RCf/AAspIQADQGgcAAAADUGbuzRMQn/+nhAAYsAhAANAaBwhAANAaBwAAAAJQZ/aQhP/AAspIQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHAAACiFtb292AAAAbG12aGQAAAAA1YCCX9WAgl8AAAPoAAAH/AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAGGlvZHMAAAAAEICAgAcAT////v7/AAAF+XRyYWsAAABcdGtoZAAAAAPVgIJf1YCCXwAAAAEAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAygAAAMoAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAB9AAABdwAAEAAAAABXFtZGlhAAAAIG1kaGQAAAAA1YCCX9WAgl8AAV+QAAK/IFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAUcbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAE3HN0YmwAAACYc3RzZAAAAAAAAAABAAAAiGF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAygDKAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAyYXZjQwFNQCj/4QAbZ01AKOyho3ySTUBAQFAAAAMAEAAr8gDxgxlgAQAEaO+G8gAAABhzdHRzAAAAAAAAAAEAAAA8AAALuAAAABRzdHNzAAAAAAAAAAEAAAABAAAB8GN0dHMAAAAAAAAAPAAAAAEAABdwAAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAAC7gAAAAAQAAF3AAAAABAAAAAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAEEc3RzegAAAAAAAAAAAAAAPAAAAzQAAAAQAAAADQAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAANAAAADQAAAQBzdGNvAAAAAAAAADwAAAAwAAADZAAAA3QAAAONAAADoAAAA7kAAAPQAAAD6wAAA/4AAAQXAAAELgAABEMAAARcAAAEbwAABIwAAAShAAAEugAABM0AAATkAAAE/wAABRIAAAUrAAAFQgAABV0AAAVwAAAFiQAABaAAAAW1AAAFzgAABeEAAAX+AAAGEwAABiwAAAY/AAAGVgAABnEAAAaEAAAGnQAABrQAAAbPAAAG4gAABvUAAAcSAAAHJwAAB0AAAAdTAAAHcAAAB4UAAAeeAAAHsQAAB8gAAAfjAAAH9gAACA8AAAgmAAAIQQAACFQAAAhnAAAIhAAACJcAAAMsdHJhawAAAFx0a2hkAAAAA9WAgl/VgIJfAAAAAgAAAAAAAAf8AAAAAAAAAAAAAAABAQAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACsm1kaWEAAAAgbWRoZAAAAADVgIJf1YCCXwAArEQAAWAAVcQAAAAAACdoZGxyAAAAAAAAAABzb3VuAAAAAAAAAAAAAAAAU3RlcmVvAAAAAmNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAidzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAIABICAgBRAFQAAAAADDUAAAAAABYCAgAISEAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAABYAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAAGAAAAWAAAAXBzdGNvAAAAAAAAAFgAAAOBAAADhwAAA5oAAAOtAAADswAAA8oAAAPfAAAD5QAAA/gAAAQLAAAEEQAABCgAAAQ9AAAEUAAABFYAAARpAAAEgAAABIYAAASbAAAErgAABLQAAATHAAAE3gAABPMAAAT5AAAFDAAABR8AAAUlAAAFPAAABVEAAAVXAAAFagAABX0AAAWDAAAFmgAABa8AAAXCAAAFyAAABdsAAAXyAAAF+AAABg0AAAYgAAAGJgAABjkAAAZQAAAGZQAABmsAAAZ+AAAGkQAABpcAAAauAAAGwwAABskAAAbcAAAG7wAABwYAAAcMAAAHIQAABzQAAAc6AAAHTQAAB2QAAAdqAAAHfwAAB5IAAAeYAAAHqwAAB8IAAAfXAAAH3QAAB/AAAAgDAAAICQAACCAAAAg1AAAIOwAACE4AAAhhAAAIeAAACH4AAAiRAAAIpAAACKoAAAiwAAAItgAACLwAAAjCAAAAFnVkdGEAAAAObmFtZVN0ZXJlbwAAAHB1ZHRhAAAAaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAO2lsc3QAAAAzqXRvbwAAACtkYXRhAAAAAQAAAABIYW5kQnJha2UgMC4xMC4yIDIwMTUwNjExMDA=' - }; - -/***/ }) -/******/ ]); - }); diff --git a/old/data/life/life.js b/old/data/life/life.js deleted file mode 100644 index 125354ec..00000000 --- a/old/data/life/life.js +++ /dev/null @@ -1,336 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -//define variables -var playerCount, startingLifeTotal, firstPlayerWide = false, lastPlayerWide = false, playerList = [], rowHeight = 0, columnWidth = 0, rowCount = 0, isFullscreen = true, mouseClickId = 0, noSleep = new NoSleep(), canEnableNoSleep = false -//Setup the enabler for no sleep -document.addEventListener("click", enableNoSleep, false); -function enableNoSleep() { - if (canEnableNoSleep) { - document.removeEventListener("click", enableNoSleep, false); - noSleep.enable(); - } -} -//This function sets everything up -function fullscreen() { - //Full screen! - grid = document.getElementById("gridShell") - if (grid.requestFullscreen) { - grid.requestFullscreen() - } else if (grid.mozRequestFullScreen) { - grid.mozRequestFullScreen() - } else if (grid.webkitRequestFullscreen) { - grid.webkitRequestFullscreen() - } else if (grid.msRequestFullscreen) { - grid.msRequestFullscreen() - } else { - isFullscreen = false - document.getElementById("return").classList.add("permaHidden") - document.getElementById("gridShell").classList.add("fullscreenUnavailable") - } -} -function startGame() { - canEnableNoSleep = document.getElementById("inputWakeLock").checked - fullscreen() - document.getElementById("return").classList.remove("hidden") - //hide the settings and grab player count and starting life total - document.getElementById("settings").classList.add("hidden") - playerCount = parseInt(document.getElementById("inputPlayerCount").value) - startingLifeTotal = parseInt(document.getElementById("inputStartingLife").value) - //determine the layout based on player count - if (playerCount % 2 == 0) { - if (playerCount >= 6) { - firstPlayerWide = true - lastPlayerWide = true - } - } else { - lastPlayerWide = true - } - //Make all the player boxes - for (var i = 1; i <= playerCount; i ++) { - //determine if the current box is rotated or widened - var rotation, wide = false - var orientationIndexAdjust = 0 - if (firstPlayerWide) { - orientationIndexAdjust += 1 - } - if (i == 1 && firstPlayerWide) { - rotation = 180 - } else if (i == playerCount && lastPlayerWide) { - rotation = 0 - } else if ((i + orientationIndexAdjust) % 2 == 0) { - rotation = 270 - } else { - rotation = 90 - } - if ((i == 1 && firstPlayerWide) || (i == playerCount && lastPlayerWide)) {wide = true} - playerList[i - 1] = new playerBox(i, rotation, wide) - document.getElementById("inputPlayer").innerHTML += "" - } - //Determine the grid size - if (isFullscreen) { - columnWidth = screen.width / 2 - 2 - } else { - columnWidth = window.innerWidth / 2 - 2 - } - rowCount = (playerCount - playerCount % 2) / 2 + 1 - if (playerCount == 2 || playerCount == 4) { - rowCount -= 1 - } - if (isFullscreen) { - rowHeight = screen.height / rowCount - 2 - } else { - rowHeight = window.innerHeight / rowCount - 2 - } - //Now that all the player boxes are made, they must be configured - for (var i = 1; i <= playerCount; i++) { - configurePlayerBox(i) - } - drawAllPlayerBoxes() -} -function playerBox(playerBoxID, canvasRotation, wide) { - //Actually needed vars - this.id = playerBoxID - this.rotation = canvasRotation - this.life = startingLifeTotal - this.canvas = document.createElement("canvas") - this.direction = 0 - this.holdTime = 0 - this.touchId = 0.5 - this.color = "#222222" - this.textColor = "#ffffff" - this.image = new Image() - this.image.customVarID = playerBoxID - this.image.onload = function() {drawPlayerBox(this.customVarID)} - //vars to make navigation easier - this.canvas.customVarID = playerBoxID - this.canvas.customVarContext = this.canvas.getContext("2d") - this.canvas.customVarContext.customVarCanvas = this.canvas - //css classes - this.canvas.classList.add("playerBox") - if (wide) { - this.canvas.classList.add("widePlayerBox") - } - //add it to the html - document.getElementById("mainGrid").appendChild(this.canvas) -} -function configurePlayerBox(playerBoxID) { - //All of this configures the size/shape/orientation of the player boxes - var currentPlayer = playerList[playerBoxID - 1] - var context = currentPlayer.canvas.customVarContext - currentPlayer.canvas.width = columnWidth - if (playerList[playerBoxID - 1].canvas.classList.contains("widePlayerBox")) { - currentPlayer.canvas.width = columnWidth * 2 + 2 - } - currentPlayer.canvas.height = rowHeight - context.translate(currentPlayer.canvas.width / 2, currentPlayer.canvas.height / 2) - context.rotate(Math.PI / 180 * currentPlayer.rotation) -} - -function resetLife() { - for (var i = 1; i <= playerCount; i++) { - playerList[i - 1].life = startingLifeTotal - } - document.getElementById('menu').classList.add('hidden') - drawAllPlayerBoxes() -} -function updateColorSelector() { - document.getElementById("inputPlayerColor").value = playerList[parseInt(document.getElementById("inputPlayer").value) - 1].color - document.getElementById("inputTextColor").value = playerList[parseInt(document.getElementById("inputPlayer").value) - 1].textColor -} -function updateBackgroundColor(color) { - playerList[parseInt(document.getElementById("inputPlayer").value) - 1].color = color - drawPlayerBox(parseInt(document.getElementById("inputPlayer").value)) -} -function updateTextColor(color) { - playerList[parseInt(document.getElementById("inputPlayer").value) - 1].textColor = color - drawPlayerBox(parseInt(document.getElementById("inputPlayer").value)) -} -function loadImage(event, destination) { - var input = event.target - var reader = new FileReader() - reader.onload = function() { - var dataURL = reader.result - destination.src = dataURL - // setTimeout(function(){drawPlayerBox(parseInt(document.getElementById("inputPlayer").value))}, 500) - } - reader.readAsDataURL(input.files[0]) -} -var savedArtList = [], cardArtUrlList = [], cardArtArtistList = [] -function inputCardArtName(cardArtNameInput) { - var xhttp = new XMLHttpRequest() - xhttp.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - savedArtList = this.responseText.split('"art_crop":"') - savedArtList.splice(0, 1) - document.getElementById("inputCardArtNameNumber").max = savedArtList.length - document.getElementById("inputCardArtNameNumber").value = 1 - for (i = 0; i < savedArtList.length; i ++) { - cardArtUrlList[i] = savedArtList[i].split('","border_crop":')[0] - } - for (i = 0; i < savedArtList.length; i ++) { - cardArtArtistList[i] = savedArtList[i].slice(savedArtList[i].indexOf('"artist":"') + 10, savedArtList[i].indexOf('","border_color":')) - } - inputCardArtNameNumber(1) - } else if (this.readyState == 4 && this.status == 404) { - // alert("Sorry, but we can't seem to find any art for '" + cardArtNameInput + "'") - } - } - xhttp.open("GET", "https://api.scryfall.com/cards/search?order=released&unique=art&q=name%3D" + cardArtNameInput.replace(/ /g, "_"), true) - xhttp.send() -} -function inputCardArtNameNumber(cardArtNameNumberInput) { - playerList[parseInt(document.getElementById('inputPlayer').value) - 1].image.src = cardArtUrlList[cardArtNameNumberInput - 1] - // setTimeout(function(){drawPlayerBox(parseInt(document.getElementById("inputPlayer").value))}, 500) -} -document.getElementById("mainGrid").addEventListener("touchmove", function(event) { - event.preventDefault() -}, false) -function rollRNG() { - document.getElementById("rngOutput").innerHTML = Math.floor(Math.random() * (parseInt(document.getElementById("inputRNGMax").value) - parseInt(document.getElementById("inputRNGMin").value) + 1) + parseInt(document.getElementById("inputRNGMin").value)) -} -function drawPlayerBox(playerBoxID) { - var currentPlayerBox = playerList[playerBoxID - 1] - var context = currentPlayerBox.canvas.customVarContext - context.textBaseline = "middle" - var tempFontSize = 100 - context.font = "100pt belerenbsc" - context.fillStyle = currentPlayerBox.color - var tempCanvasHeight = currentPlayerBox.canvas.height, tempCanvasWidth = currentPlayerBox.canvas.width - if (playerList[playerBoxID - 1].rotation == 90 || playerList[playerBoxID - 1].rotation == 270) { - tempCanvasHeight = tempCanvasWidth - tempCanvasWidth = currentPlayerBox.canvas.height - } - context.fillRect(tempCanvasWidth / -2, tempCanvasHeight / -2, tempCanvasWidth, tempCanvasHeight) - if (currentPlayerBox.image.src != "") { - var imageToDraw = currentPlayerBox.image - if (imageToDraw.width / imageToDraw.height > tempCanvasWidth / tempCanvasHeight) { - //The image is wider and should be fitted to its height - context.drawImage(imageToDraw, tempCanvasHeight / imageToDraw.height * imageToDraw.width / -2, tempCanvasHeight / -2, tempCanvasHeight / imageToDraw.height * imageToDraw.width, tempCanvasHeight) - } else { - //The image is taller and should be fitted to its width - context.drawImage(imageToDraw, tempCanvasWidth / -2, tempCanvasWidth / imageToDraw.width * imageToDraw.height / -2, tempCanvasWidth, tempCanvasWidth / imageToDraw.width * imageToDraw.height) - } - } - if (currentPlayerBox.life < 1) { - context.fillStyle = "#0008" - context.fillRect(tempCanvasWidth / -2, tempCanvasHeight / -2, tempCanvasWidth, tempCanvasHeight) - context.fillStyle = "#800" - } else { - context.fillStyle = playerList[playerBoxID - 1].textColor - } - while (context.measureText(currentPlayerBox.life).width >= tempCanvasWidth) { - tempFontSize -= 1 - context.font = tempFontSize + "pt belerenbsc" - } - var horizontalShift = -1 * parseInt(context.measureText(currentPlayerBox.life).width) / 2 - context.strokeStyle = "black" - context.lineWidth = 5 - context.strokeText(currentPlayerBox.life, horizontalShift, 0) - context.fillText(currentPlayerBox.life, horizontalShift, 0) -} -function drawAllPlayerBoxes() { - for (var i = 1; i <= playerList.length; i ++) { - drawPlayerBox(i) - } -} -//Event Listener magic! (always records mouse/touch positions so the loop can work without events) -var touchX = [], touchY = [] -document.getElementById("mainGrid").addEventListener("mousedown", startMouseCoordinates, true) -window.addEventListener("mousemove", updateMouseCoordinates, true) -window.addEventListener("mouseup", endMouseCoordinates, true) -function startMouseCoordinates() { - mouseClickId += 1 - playerList[event.target.customVarID - 1].touchId = mouseClickId - singleTap(event.target) -} -function updateMouseCoordinates() { - touchX[0] = event.clientX - touchY[0] = event.clientY} -function endMouseCoordinates() { - for (var i = 1; i <= playerList.length; i++) { - playerList[i - 1].touchId = 0.5 - } -} -window.addEventListener("touchstart", switchToTouchEvents, true) -function switchToTouchEvents() { - window.removeEventListener("touchstart", switchToTouchEvents, true) - document.getElementById("mainGrid").removeEventListener("mousedown", startMouseCoordinates, true) - window.removeEventListener("mousemove", updateMouseCoordinates, true) - window.removeEventListener("mouseup", endMouseCoordinates, true) - document.getElementById("mainGrid").addEventListener("touchstart", startTouch, true) - window.addEventListener("touchmove", moveTouch, true) - window.addEventListener("touchend", endTouch, true) -} -function startTouch() { - playerList[event.changedTouches[0].target.customVarID - 1].touchId = event.changedTouches[0].identifier - moveTouch() - singleTap(event.changedTouches[0].target) -} -function moveTouch() { - touchX = [], touchY = [] - for (var i = 0; i < event.touches.length; i ++) { - touchX[i] = event.touches[i].clientX - touchY[i] = event.touches[i].clientY - } -} -function endTouch() { - for (var i = 1; i <= playerList.length; i++) { - if (playerList[i - 1].touchId == event.changedTouches[0].identifier) { - playerList[i - 1].touchId = 0.5 - } - } - moveTouch() -} -//Tap (and click) functions -function singleTap(targetPlayerBox) { - var playerBoxBounds = targetPlayerBox.getBoundingClientRect() - var tappedPlayerBox = playerList[targetPlayerBox.customVarID - 1] - var lifeAdjust = 0 - if (tappedPlayerBox.rotation == 0 || tappedPlayerBox.rotation == 180) { - if (touchX[touchX.length - 1] > playerBoxBounds.width / 2 + playerBoxBounds.x) { - lifeAdjust = 1 - } else { - lifeAdjust = -1 - } - } else { - if (touchY[touchY.length - 1] > playerBoxBounds.height / 2 + playerBoxBounds.y) { - lifeAdjust = 1 - } else { - lifeAdjust = -1 - } - } - if (tappedPlayerBox.rotation == 180 || tappedPlayerBox.rotation == 270) { - lifeAdjust *= -1 - } - tappedPlayerBox.direction = lifeAdjust - tappedPlayerBox.life += lifeAdjust - drawPlayerBox(tappedPlayerBox.id) - setTimeout(clockCheck.bind(null, tappedPlayerBox, tappedPlayerBox.touchId), 500) -} -function clockCheck(tappedPlayerBox, lastTapID) { - if (tappedPlayerBox.touchId == lastTapID) { - tappedPlayerBox.life += tappedPlayerBox.direction - drawPlayerBox(tappedPlayerBox.id) - if (tappedPlayerBox.holdTime >= 150) { - setTimeout(clockCheck.bind(null, tappedPlayerBox, tappedPlayerBox.touchId), 10) - } else if (tappedPlayerBox.holdTime >= 50) { - setTimeout(clockCheck.bind(null, tappedPlayerBox, tappedPlayerBox.touchId), 50) - } else { - setTimeout(clockCheck.bind(null, tappedPlayerBox, tappedPlayerBox.touchId), 100) - } - tappedPlayerBox.holdTime += 1 - } else { - tappedPlayerBox.holdTime = 0 - } -} -//Hopefully stops the pesky double-tap zoom: -var doubleTouchStartTimestamp = 0 -document.getElementById("mainGrid").addEventListener("touchstart", function() { - var now = +(new Date()) - if (doubleTouchStartTimestamp + 500 > now){ - event.preventDefault() - } - doubleTouchStartTimestamp = now -}) -//Updated :D diff --git a/old/data/life/menuButton.png b/old/data/life/menuButton.png deleted file mode 100644 index 012267b9..00000000 Binary files a/old/data/life/menuButton.png and /dev/null differ diff --git a/old/data/life/menuExitButton.png b/old/data/life/menuExitButton.png deleted file mode 100644 index 707a98c2..00000000 Binary files a/old/data/life/menuExitButton.png and /dev/null differ diff --git a/old/data/main.js b/old/data/main.js deleted file mode 100644 index eb659687..00000000 --- a/old/data/main.js +++ /dev/null @@ -1,1096 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -//Hi there :D -//changeme new location -function textAreaKeyPressed() { - if (event.key == "Enter" || event.key == "Return" || event.keyCode == 13) { - setTimeout(function() { - cursorIndex = document.getElementById("inputText").selectionStart - document.getElementById("inputText").value = document.getElementById("inputText").value.slice(0, cursorIndex) + "{line}" + document.getElementById("inputText").value.slice(cursorIndex, 0) - }, 5) - } -} - - -//============================================// -// Anything I Like to Change Often :) // -//============================================// -randomizeSampleCards(8) -var cookieUpdate = "2" - -//============================================// -// Setup Variables/Canvases // -//============================================// -//Define important variables -var sectionFrame = 0, sectionText = 0, sectionOther = 0 -var cardWidth = 750, cardHeight = 1050 -var date = new Date() -document.getElementById("inputInfoNumber").value = date.getFullYear() -var savedArtList = [], cardArtUrlList = [], cardArtArtistList = [] -//Create the object that stores data for convencience :) It's what keeps track of values necessary to change between card frames -var defaultCardData = { - version:"m15", - manaSymbolX:cwidth(659), manaSymbolY:cheight(60), manaSymbolRadius:cwidth(17.5), manaSymbolDirection:"left", - titleX:cwidth(63), titleY:cheight(94), titleWidth:cwidth(630), titleFont:"belerenb", titleFontSize:cwidth(40), titleAlignment:"left", titleShadow:"none", - typeX:cwidth(63), typeY:cheight(630), typeWidth:cwidth(630), typeFont:"belerenb", typeFontSize:cwidth(34), typeAlignment:"left", typeShadow:"none", - textX:cwidth(63), textY:cheight(690), textWidth:cwidth(620), textFont:"mplantin", - ptFont:"39px belerenb", ptX:cwidth(645), ptY:cheight(975), ptShadow:"none", - ptBoxX:cwidth(571), ptBoxY:cheight(929), ptBoxWidth:cwidth(135), ptBoxHeight:cheight(76), - setSymbolWidth:cwidth(77), setSymbolHeight:cheight(42), setSymbolX:cwidth(693), setSymbolY:cheight(620), setSymbolAlignment:"right", - watermarkWidth:cwidth(520), watermarkHeight:cheight(250), watermarkY:cheight(815), - cardArtX:cwidth(58), cardArtY:cheight(118), - miracle:true, nyx:true, legendary:true, creature:true, rulesBox:true, pinline:true, rareStamp:true, titleTypeBoxes:true, - transparency:false, - specialImageA:false, specialImageB:false, - bottomInfoFunction:"bottomInfoM15", - horizontal:false -} -var cardData = {} -Object.assign(cardData, defaultCardData) -//Function that restores image values for various things :) -function backToDefault(version) { - //Fixes canvas size - if (cardWidth != 750 || cardHeight != 1050) { - changeCanvasSize(750, 1050) - } - //Default card data, correct card version - Object.assign(cardData, defaultCardData) - cardData.version = version - //Default image values - imgLegendary.load("none", cwidth(20), cheight(20), cwidth(714), cheight(186)) - imgLegendaryRight.load("none", cwidth(20), cheight(20), cwidth(714), cheight(186)) - imgRareStamp.load("none", cwidth(329), cheight(949), cwidth(90), cheight(50)) - imgRareStampRight.load("none", cwidth(329), cheight(949), cwidth(90), cheight(50)) - imgStamp.load("none", cwidth(340), cheight(965), cwidth(70), cheight(37)) - imgNyx.load("none", cwidth(30), cheight(30), cwidth(690), cheight(586)) - imgNyxRight.load("none", cwidth(30), cheight(30), cwidth(690), cheight(586)) - imgMiracle.load("none", cwidth(30), cheight(30), cwidth(689), cheight(511)) - imgMiracleRight.load("none", cwidth(30), cheight(30), cwidth(689), cheight(511)) - //Default masks - for (var i = 0; i < frameMaskList.length; i++) { - if (window[frameMaskList[i]].src.includes("data/borders/m15/" + frameMaskList[i] + ".png") == false) { - window[frameMaskList[i]].load("data/borders/m15/" + frameMaskList[i] + ".png") - } - } - //Loads default frame images - for (var i = 0; i < frameImageList.length; i++) { - window[frameImageList[i]].load("data/borders/" + cardData.version + "/white/frame.png") - } - //Fixes default font Colors - for (var i = 0; i < document.getElementsByClassName("fontColor").length; i++) { - document.getElementsByClassName("fontColor")[i].value = "#000000" - } - //Runs the finishing script - loadScript('data/borders/' + version + '/border.js') - //Fixes some other values - document.getElementById("inputTextSize").value = 37 -} -function finishChangingBorder() { - loadLegendaryImages() - loadRareStampImages() - loadMiracleImages() - loadNyxImages() - changePowerToughnessColor() - //Runs the three main drawing functions - sectionTextFunction() - sectionFrameFunction() - sectionOtherFunction() -} - -//Set up canvases -var canvas = document.getElementById("canvas") -var context = canvas.getContext("2d") -var canvasList = ["card", "mask", "frame", "text", "other", "transparent", "crop", "specialA", "specialB", "textLine"] -for (var i = 0; i < canvasList.length; i ++) { - window[(canvasList[i] + "Canvas")] = document.createElement("canvas") - window[(canvasList[i] + "Context")] = window[(canvasList[i] + "Canvas")].getContext("2d") - window[(canvasList[i] + "Canvas")].width = cardWidth - window[(canvasList[i] + "Canvas")].height = cardHeight -} -function changeCanvasSize(width, height) { - cardWidth = width - cardHeight = height - for (var i = 0; i < canvasList.length; i ++) { - window[(canvasList[i] + "Canvas")].width = cardWidth - window[(canvasList[i] + "Canvas")].height = cardHeight - } - imgCornerMask.load("none") - imgWhite.load("none") - imgBlank.load("none") -} - -//============================================// -// Custom Canvas Functions // -//============================================// -//Create custom canvas functions -//Image masks -CanvasRenderingContext2D.prototype.mask = function(image, masks, color, maskOpacity = 1) { - //Clear the mask canvas - maskContext.clearRect(0, 0, cardWidth, cardHeight) - maskContext.globalCompositeOperation = "source-over" - if (masks != undefined && masks != "none") { - //Break up the list of masks, interpret and apply them - var maskList = masks.split(";") - for (var i = 0; i < maskList.length; i ++) { - var currentMask = maskList[i].split(",") - maskContext.globalCompositeOperation = currentMask[1] - if (window[currentMask[0]] != undefined) { - maskContext.drawImage(window[currentMask[0]], 0, 0, cardWidth, cardHeight) - } else { - maskContext.fillStyle = currentMask[0] - maskContext.fillRect(0, 0, cardWidth, cardHeight) - } - } - //Now all the masks are applied. Draw the image, if provided. - maskContext.globalCompositeOperation = "source-in" - } - maskContext.globalAlpha = maskOpacity - if (image != "none") { - maskContext.drawImage(image, image.xVal || 0, image.yVal || 0, image.wVal || cardWidth, image.hVal || cardHeight) - } - //If a color is provided, fill that in too. - if (color != undefined && color != "none") { - maskContext.globalCompositeOperation = "source-in" - maskContext.fillStyle = color - maskContext.fillRect(0, 0, cardWidth, cardHeight) - } - maskContext.globalAlpha = 1 - this.drawImage(maskCanvas, 0, 0, cardWidth, cardHeight) -} - -//Text processor... kind of? new and improved! -CanvasRenderingContext2D.prototype.writeText = function(text = "", textX = 0, textY = 0, textWidth = 750, textFont = "matrixb", textFontSize = 37, textColor = "black", other = "") { - //Parses the 'other' parameter to determine any special values - var otherParameters = other.replace(/=/g, ",").split(",") - var outline = false - if (otherParameters.indexOf("outline") != -1) { - if (otherParameters[otherParameters.indexOf("outline") + 1] == "true") { - outline = true - textLineContext.strokeStyle = otherParameters[otherParameters.indexOf("outlineColor") + 1] - } - } - var textAlignment = "left" - if (otherParameters.indexOf("textAlignment") != -1) { - textAlignment = otherParameters[otherParameters.indexOf("textAlignment") + 1] - } - var shadow = 0 - if (otherParameters.indexOf("shadow") != -1) { - shadow = parseInt(otherParameters[otherParameters.indexOf("shadow") + 1]) - } - var skipLines = true - if (otherParameters.indexOf("oneLine") != -1) { - skipLines = false - } - //Assigns other parameters - textLineContext.font = textFontSize + "px " + textFont - textLineContext.fillStyle = textColor - textLineContext.lineWidth = 2 - //Creates some of the important variables - var currentLineX = textX - var currentLineY = textY - //Processes the main string - textLineContext.clearRect(0, 0, cardWidth, cardHeight) - var uniqueSplitter = "f73f&3hF#jfJaeK8" - var splitString = text.replace(/ /g, uniqueSplitter + " " + uniqueSplitter).replace(/{/g, uniqueSplitter + "{").replace(/}/g, "}" + uniqueSplitter).split(uniqueSplitter) - for (var i = 0; i < splitString.length; i ++) { - splitString[i] = splitString[i].replace(uniqueSplitter, "") - wordToWrite = "" - //determine if it's a word or a code! - if (splitString[i].includes("{") && splitString[i].includes("}")) { - //it may be a code... Go through all the codes, if it matches anything, act on it! Otherwise, it's a word. - var possibleCodeLower = splitString[i].replace("{", "").replace("}", "").toLowerCase() - if (possibleCodeLower == "i") { - textLineContext.font = "italic " + textFontSize + "px " + textFont - } else if (possibleCodeLower == "/i") { - textLineContext.font = textFontSize + "px " + textFont - } else if (possibleCodeLower.slice(0, 8) == "fontsize") { - textFontSize = parseInt(possibleCodeLower.replace("fontsize", "")) - if (textLineContext.font.includes("italic")) { - textLineContext.font = "italic " + textFontSize + "px " + textFont - } else { - textLineContext.font = textFontSize + "px " + textFont - } - } else if (possibleCodeLower == "line" || possibleCodeLower == "bar" || possibleCodeLower == "linenospace" && skipLines) { - //Whichever one it is, the code will require skipping a line. - this.drawImage(textLineCanvas, alignAdjust(textAlignment, textWidth, currentLineX - textX), 0, cardWidth, cardHeight) - textLineContext.clearRect(0, 0, cardWidth, cardHeight) - currentLineX = textX - currentLineY += textFontSize - if (possibleCodeLower == "line" && skipLines) { - currentLineY += parseInt(document.getElementById("inputTextShift").value) - } else if (possibleCodeLower == "bar" && skipLines) { - textLineContext.drawImage(imgBar, cardWidth / 2 - imgBar.width / 2, currentLineY - textFontSize + parseInt(document.getElementById("inputTextShift").value) + 6) - currentLineY += 2 * parseInt(document.getElementById("inputTextShift").value) - } - } else if (possibleCodeLower == "left") { - textAlignment = "left" - } else if (possibleCodeLower == "center") { - textAlignment = "center" - } else if (possibleCodeLower == "right") { - textAlignment = "right" - } else if (possibleCodeLower.slice(0, 2) == "up") { - currentLineY -= parseInt(possibleCodeLower.replace("up", "")) - } else if (possibleCodeLower.slice(0, 4) == "down") { - currentLineY += parseInt(possibleCodeLower.replace("down", "")) - } else if (possibleCodeLower.slice(0, 4) == "left") { - currentLineX -= parseInt(possibleCodeLower.replace("left", "")) - textX -= parseInt(possibleCodeLower.replace("left", "")) - textWidth += parseInt(possibleCodeLower.replace("right", "")) - } else if (possibleCodeLower.slice(0, 5) == "right") { - currentLineX += parseInt(possibleCodeLower.replace("right", "")) - textX += parseInt(possibleCodeLower.replace("right", "")) - textWidth -= parseInt(possibleCodeLower.replace("right", "")) - } else if (possibleCodeLower == "plane") { - textLineContext.drawImage(manaSymbolImageList[56], currentLineX + cheight(5), currentLineY - cheight(25), cheight(67), cheight(60)) - currentLineX += cheight(85) - textX += cheight(85) - textWidth -= cheight(85) - } else if (manaSymbolCodeList.includes(possibleCodeLower)) { - //It's a mana symbol! Draw it. - var extraWidth = 1 - if (possibleCodeLower == "chaos") { - extraWidth = 1.15 - } - textLineContext.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf(possibleCodeLower)], currentLineX + textFontSize * 0.054, currentLineY - textFontSize * 0.7, textFontSize * 0.77 * extraWidth, textFontSize * 0.77) - currentLineX += textFontSize * 0.77 * extraWidth + textFontSize * 0.07 - } else { - //It's not a code. treat it like a regular word. - wordToWrite = splitString[i] - } - } else { - //It's a word! - wordToWrite = splitString[i] - } - //If either path determined it was a word, write it: - if (textLineContext.measureText(wordToWrite).width + currentLineX - textX > textWidth) { - //The line is full. Write it, then clear everything up - //But if it needs to be contained to one line... - if (skipLines == false) { - textFontSize -= 1 - textLineContext.font = textFontSize + "px " + textFont - textLineContext.clearRect(0, 0, cardWidth, cardHeight) - currentLineX = textX - currentLineY = textY - i = -1 - continue; - } - this.drawImage(textLineCanvas, alignAdjust(textAlignment, textWidth, currentLineX - textX), 0, cardWidth, cardHeight) - textLineContext.clearRect(0, 0, cardWidth, cardHeight) - currentLineX = textX - currentLineY += textFontSize - } - //Whatever happened, the current word to write needs to be added. - if (shadow != 0) { - textLineContext.fillStyle = "black" - textLineContext.fillText(wordToWrite, currentLineX + shadow, currentLineY + shadow) - textLineContext.fillStyle = textColor - } - if (outline) { - textLineContext.strokeText(wordToWrite, currentLineX, currentLineY) - } - textLineContext.fillText(wordToWrite, currentLineX, currentLineY) - currentLineX += textLineContext.measureText(wordToWrite).width - if (i == splitString.length - 1) { - //writes the last bit :) - this.drawImage(textLineCanvas, alignAdjust(textAlignment, textWidth, currentLineX - textX), 0, cardWidth, cardHeight) - } - } -} -function alignAdjust(alignment, fullWidth, width) { - switch(alignment) { - case "right": - return (fullWidth - width) - break; - case "center": - return (fullWidth - width) / 2 - break; - default: - return 0 - } -} -//Mana cost! -CanvasRenderingContext2D.prototype.manaCost = function(input, x, y, size, path) { - this.fillStyle = "black" - var currentX = x - var currentY = y - var manaCostList = input.toLowerCase().replace(/{/g, " ").replace(/}/g, " ").split(" ") - if (cardData.manaSymbolDirection == "left") { - var manaSymbolWidth = 0 - for (var i = manaCostList.length - 1; i >= 0; i--) { - if (manaSymbolCodeList.indexOf(manaCostList[i]) != -1) { - this.beginPath() - this.arc(currentX + size - 1, currentY + size + 3.5, size, 0, 6.29, false) - this.fill() - this.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf(manaCostList[i])], currentX, currentY, size * 2, size * 2) - if (path == "left") { - currentX -= 39 - manaSymbolWidth += 39 - } - } - } - return manaSymbolWidth - } else { - return 0 - } -} - -//Function that autocrops the image -function autocrop(targetImage) { - //Create image, size canvas, draw image - var imgTempTarget = new Image() - imgTempTarget.crossOrigin = "anonymous" - imgTempTarget.src = targetImage.src - imgTempTarget.onload = function() { - if (imgTempTarget.width > 0 && imgTempTarget.height > 0) { - cropCanvas.width = imgTempTarget.width - cropCanvas.height = imgTempTarget.height - cropContext.drawImage(imgTempTarget, 0, 0) - //declare variables - var width = cropCanvas.width - var height = cropCanvas.height - var pix = {x:[], y:[]} - var imageData = cropContext.getImageData(0, 0, cropCanvas.width, cropCanvas.height) - var x, y, index - if (imageData.data.length > 4) { - //Go through every pixel and - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - //(y * width + x) * 4 + 3 calculates the index at which the alpha value of the pixel at x, y is given - index = (y * width + x) * 4 + 3 - if (imageData.data[index] > 0) { - //pix is the image object that stores two arrays of x and y coordinates. These stored coordinates are all the visible pixels - pix.x.push(x) - pix.y.push(y) - } - } - } - //sorts the arrays numerically - pix.x.sort(function(a,b){return a-b}) - pix.y.sort(function(a,b){return a-b}) - var n = pix.x.length - 1 - //Finds the difference between the leftmost and rightmost visible pixels, and the topmost and bottommost pixels, cuts out a section of the canvas - width = pix.x[n] - pix.x[0] - height = pix.y[n] - pix.y[0] - var cropped = cropContext.getImageData(pix.x[0], pix.y[0], width + 1, height + 1) - //Resizes the canvas and draws cropped image - cropCanvas.width = width + 1 - cropCanvas.height = height + 1 - cropContext.putImageData(cropped, 0, 0) - //Saves the newly cropped image to the given image - targetImage.src = cropCanvas.toDataURL() - } - } - } -} - -//Function that auto... makes the image's white pixels transparent -function whiteToTransparent(targetImage) { - //Create image, size canvas, draw image - var imgTempTarget = new Image() - imgTempTarget.crossOrigin = "anonymous" - imgTempTarget.src = targetImage.src - imgTempTarget.onload = function() { - if (imgTempTarget.width > 0 && imgTempTarget.height > 0) { - transparentCanvas.width = imgTempTarget.width - transparentCanvas.height = imgTempTarget.height - transparentContext.drawImage(imgTempTarget, 0, 0) - //declare variables - var width = transparentCanvas.width - var height = transparentCanvas.height - var imageData = transparentContext.getImageData(0, 0, transparentCanvas.width, transparentCanvas.height) - var x, y, index - //Go through every pixel and - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - index = (y * width + x) * 4 - if (imageData.data[index] >= 250 && imageData.data[index + 1] >= 250 && imageData.data[index + 2] >= 250) { - imageData.data[index + 3] = 0 - } - } - } - transparentContext.clearRect(0, 0, width, height) - transparentContext.putImageData(imageData, 0, 0) - targetImage.src = transparentCanvas.toDataURL() - } - } -} - -//============================================// -// Custom Image Stuff // -//============================================// -//Whenever a new image is created it will be given an onload function. -function createImage(name, section) { - //Create the image and give it default values - window[name] = new Image() - window[name].name = name - if (section != undefined) { - window[name].cardSection = section - } else { - window[name].cardSection = "none" - } - //Give the image an onload function - window[name].onload = function() { - //the loading status is used to insure that images are loaded before doing anything else - this.loadingStatus = false - if (this.cardSection != "none") { - window[this.cardSection] -= 1 - if (this.cardSection == "sectionFrame") { - //console.log("Finished loading. Current total: " + window[this.cardSection] + " " + this.name) - } - if (window[this.cardSection] <= 0) { - //Once all the images under a certain section have loaded, that section's function will be run - if (this.cardSection == "sectionFrame") { - //console.log("We're all done loading!\n\n\n\n\n") - } - window[this.cardSection + "Function"]() - } - } - } -} - -//This is a custom function meant to load new image sources -Image.prototype.load = function(source, x, y, w, h) { - if (source != "none") { - if (this.loadingStatus != true && this.cardSection != "none") { - window[this.cardSection] += 1 - if (this.cardSection == "sectionFrame") { - //console.log("Starting to load. Current total: " + window[this.cardSection] + " " + this.name) - } - } - this.loadingStatus = true - this.src = source - } - - if (x != undefined) {this.xVal = x} - if (y != undefined) {this.yVal = y} - if (w != undefined) {this.wVal = w} - if (h != undefined) {this.hVal = h} -} - -//Loads images via URL -function imageURL(input, targetImage, processes) { - targetImage.cropStatus = processes - targetImage.load("https://cors-anywhere.herokuapp.com/" + input) -} - -//============================================// -// Loads all the images // -//============================================// -//Images that are drawn on the frame -var frameImageList = ["imgSectionFrame", "imgFrame", "imgFrameRight", "imgTitleTypeBoxes", "imgTitleTypeBoxesRight", "imgRulesBox", "imgRulesBoxRight", "imgPinline", "imgPinlineRight", "imgLegendary", "imgLegendaryRight", "imgNyx", "imgNyxRight", "imgMiracle", "imgMiracleRight", "imgRareStamp", "imgRareStampRight"] -for (var i = 0; i < frameImageList.length; i++) { - createImage(frameImageList[i], "sectionFrame") - window[frameImageList[i]].load("data/borders/m15/white/frame.png") -} -//changeme -createImage("imgPowerToughness", "sectionText") -imgPowerToughness.load("data/borders/m15/white/pt.png") -//masks for the card frame -var frameMaskList = ["imgTypeMask", "imgTitleMask", "imgPinlineMask", "imgRulesMask", "imgFrameMask", "imgArtMask", "imgBorderMask"] -for (var i = 0; i < frameMaskList.length; i++) { - createImage(frameMaskList[i], "sectionFrame") - window[frameMaskList[i]].load("data/borders/m15/" + frameMaskList[i] + ".png") -} -//any images that stay the same -var staticImageList = ["imgMultiGradient", "imgArtistBrush", "imgFoil", "imgStamp", "imgCornerMask", "imgBar", "imgBlank", "imgWhite"] -for (var i = 0; i < staticImageList.length; i++) { - createImage(staticImageList[i], "none") - window[staticImageList[i]].load("data/borders/" + staticImageList[i] + ".png") -} -//Any images uploaded by the user -var userInputImageList = ["imgCardArt", "imgSetSymbol", "imgWatermark"] -for (var i = 0; i < userInputImageList.length; i++) { - createImage(userInputImageList[i], "sectionOther") - window[userInputImageList[i]].load("data/borders/imgBlank.png") - window[userInputImageList[i]].crossOrigin = "anonymous" - window[userInputImageList[i]].onload = function() { - if (this.cropStatus == "needsBoth") { - this.cropStatus = "needsCrop" - whiteToTransparent(this) - } else if (this.cropStatus == "needsWhite") { - this.cropStatus = "none" - whiteToTransparent(this) - } else if (this.cropStatus == "needsCrop") { - this.cropStatus = "none" - autocrop(this) - } else { - this.loadingStatus = false - sectionOther -= 1 - if (sectionOther <= 0) { - sectionOtherFunction() - } - } - } -} -//Any images that may or may not be used -var staticImageList = ["imgAbilityLineEven", "imgAbilityLineOdd"] -for (var i = 0; i < staticImageList.length; i++) { - createImage(staticImageList[i], "none") - window[staticImageList[i]].load("data/borders/imgBlank.png") -} -//Mana symbol Array setup -var manaSymbolCodeList = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "w", "u", "b", "r", "g", "2w", "2u", "2b", "2r", "2g", "pw", "pu", "pb", "pr", "pg", "wu", "wb", "ub", "ur", "br", "bg", "rg", "rw", "gw", "gu", "x", "s", "c", "t","untap", "e", "y", "z", "1/2", "inf", "chaos", "plane", "l+", "l-", "l0", "oldtap"] -var manaSymbolImageList = new Array() -for (var i = 0; i < manaSymbolCodeList.length; i++) { - manaSymbolImageList[i] = new Image() - manaSymbolImageList[i].src = "data/manaSymbols/" + i + ".png" - manaSymbolImageList[i].name = i - manaSymbolImageList[i].onload = function() { - document.getElementById(this.name).src = this.src - } -} - -//============================================// -// Draw The Sections! // -//============================================// -function sectionFrameFunction() { - //Whenever images for the card from finish loading this function will run - //Draw the primary frame stuff! - frameContext.clearRect(0, 0, cardWidth, cardHeight) - if (cardData.transparency && document.getElementById("inputCheckboxFrameRight").checked) { - frameContext.mask(imgFrame, "imgMultiGradient,source-over;imgWhite,source-out;imgArtMask,destination-out") - } else { - frameContext.mask(imgFrame, "imgArtMask,source-over;imgWhite,source-out") - } - if (document.getElementById("inputCheckboxFrameRight").checked) { - frameContext.mask(imgFrameRight, "imgMultiGradient,source-over;imgArtMask,destination-out") - } - if (document.getElementById("inputCheckboxRulesBox").checked && cardData.rulesBox) { - frameContext.mask(imgRulesBox, "imgRulesMask,source-over") - if (document.getElementById("inputCheckboxRulesBoxRight").checked) { - frameContext.mask(imgRulesBoxRight, "imgRulesMask,source-over;imgMultiGradient,source-in") - } - } - if (document.getElementById("inputCheckboxTitleTypeBoxes").checked && cardData.titleTypeBoxes) { - frameContext.mask(imgTitleTypeBoxes, "imgTitleMask,source-over;imgTypeMask,source-over") - if (document.getElementById("inputCheckboxTitleTypeBoxesRight").checked) { - frameContext.mask(imgTitleTypeBoxesRight, "imgTitleMask,source-over;imgTypeMask,source-over;imgMultiGradient,source-in") - } - } - if (document.getElementById("inputCheckboxNyx").checked && cardData.nyx) { - frameContext.mask(imgNyx) - if (document.getElementById("inputCheckboxFrameRight").checked) { - frameContext.mask(imgNyxRight, "imgMultiGradient,source-over") - } - } - if (document.getElementById("inputCheckboxPinline").checked && cardData.pinline) { - frameContext.mask(imgPinline, "imgPinlineMask,source-over") - if (document.getElementById("inputCheckboxPinlineRight").checked) { - frameContext.mask(imgPinlineRight, "imgPinlineMask,source-over;imgMultiGradient,source-in") - } - } - if (document.getElementById("inputCheckboxMiracle").checked && cardData.miracle) { - if ((document.getElementById("inputCheckboxTitleTypeBoxes").checked && document.getElementById("inputCheckboxTitleTypeBoxesRight").checked) || (document.getElementById("inputCheckboxFrameRight").checked && document.getElementById("inputCheckboxTitleTypeBoxes").checked == false)) { - frameContext.mask(imgMiracle) //changeme - frameContext.mask(imgMiracleRight, "imgMultiGradient,source-over") - } else { - frameContext.mask(imgMiracle) - } - } - frameContext.mask(imgBorderMask, "none", document.getElementById("inputBorderColor").value) - if (document.getElementById("inputCheckboxLegendary").checked && cardData.legendary) { - frameContext.fillStyle = document.getElementById("inputBorderColor").value - frameContext.fillRect(0, 0, cardWidth, 50) - frameContext.mask(imgLegendary, "imgTitleMask,source-over;imgWhite,source-out") - if ((document.getElementById("inputCheckboxPinline").checked && document.getElementById("inputCheckboxPinlineRight").checked) || (document.getElementById("inputCheckboxFrameRight").checked && document.getElementById("inputCheckboxPinline").checked == false)) { - frameContext.mask(imgLegendaryRight, "imgTitleMask,source-over;imgMultiGradient,source-out") - } - } - if (document.getElementById("inputCheckboxRareStamp").checked && cardData.rareStamp) { - frameContext.mask(imgRareStamp) - if ((document.getElementById("inputCheckboxPinline").checked && document.getElementById("inputCheckboxPinlineRight").checked) || (document.getElementById("inputCheckboxFrameRight").checked && document.getElementById("inputCheckboxPinline").checked == false)) { - frameContext.mask(imgRareStampRight, "imgMultiGradient,source-over") - } - frameContext.mask(imgStamp) - } - //Erase anything if needed (includes opacity fun) - frameContext.globalCompositeOperation = "destination-out" - // frameContext.mask(imgArtMask) - frameContext.mask(imgCornerMask) - frameContext.mask(imgWhite, "imgTitleMask,source-over;imgTypeMask,source-over", "none", 1 - (parseInt(document.getElementById("inputTitleTypeOpacity").value) / 100)) - frameContext.mask(imgWhite, "imgRulesMask,source-over", "none", 1 - (parseInt(document.getElementById("inputRulesBoxOpacity").value) / 100)) - frameContext.mask(imgWhite, "imgPinlineMask,source-over", "none", 1 - (parseInt(document.getElementById("inputPinlineOpacity").value) / 100)) - frameContext.mask(imgWhite, "imgFrameMask,source-over", "none", 1 - (parseInt(document.getElementById("inputFrameOpacity").value) / 100)) - frameContext.globalCompositeOperation = "source-over" - //Update the card - drawCard() -} - -function sectionTextFunction() { - //Clears the text canvas - textContext.clearRect(0, 0, cardWidth, cardHeight) - //mana cost, name, type, text - var manaSymbolWidth = textContext.manaCost(document.getElementById("inputCost").value, cardData.manaSymbolX, cardData.manaSymbolY, cardData.manaSymbolRadius, cardData.manaSymbolDirection) - - textContext.writeText(document.getElementById("inputName").value, cardData.titleX, cardData.titleY, cardData.titleWidth - manaSymbolWidth, cardData.titleFont, cardData.titleFontSize, document.getElementById("inputTitleColor").value, "oneLine,outline=" + document.getElementById("inputCheckboxTitleOutline").checked + ",outlineColor=" + document.getElementById("inputTitleOutlineColor").value + ",textAlignment=" + cardData.titleAlignment + ",shadow=" + cardData.titleShadow) - textContext.writeText(document.getElementById("inputType").value, cardData.typeX, cardData.typeY, cardData.typeWidth, cardData.typeFont, cardData.typeFontSize, document.getElementById("inputTypeColor").value, "oneLine,outline=" + document.getElementById("inputCheckboxTypeOutline").checked + ",outlineColor=" + document.getElementById("inputTypeOutlineColor").value + ",textAlignment=" + cardData.typeAlignment + ",shadow=" + cardData.typeShadow) - textContext.writeText(document.getElementById("inputText").value, cardData.textX, cardData.textY + parseInt(document.getElementById("inputTextDown").value), cardData.textWidth, cardData.textFont, parseInt(document.getElementById("inputTextSize").value), document.getElementById("inputRulesColor").value, "outline=" + document.getElementById("inputCheckboxRulesOutline").checked + ",outlineColor=" + document.getElementById("inputRulesOutlineColor").value) - //Power Toughness - if (document.getElementById("inputCheckboxPowerToughness").checked && cardData.creature) { - imgPowerToughness.xVal = cardData.ptBoxX - imgPowerToughness.yVal = cardData.ptBoxY - imgPowerToughness.wVal = cardData.ptBoxWidth - imgPowerToughness.hVal = cardData.ptBoxHeight - textContext.mask(imgPowerToughness) - textContext.textAlign = "center" - textContext.font = cardData.ptFont - textContext.fillStyle = document.getElementById("inputCreatureColor").value - if (cardData.ptShadow != "none") { - textContext.fillStyle = "black" - textContext.fillText(document.getElementById("inputPowerToughness").value, cardData.ptX + parseInt(cardData.ptShadow), cardData.ptY + parseInt(cardData.ptShadow)) - textContext.fillStyle = document.getElementById("inputCreatureColor").value - } - textContext.fillText(document.getElementById("inputPowerToughness").value, cardData.ptX, cardData.ptY) - textContext.textAlign = "left" - } - if (cardData.bottomInfoFunction != "none") { - window[cardData.bottomInfoFunction]() - } else { - drawCard() - } -} - -function bottomInfoM15() { - var infoNumber = document.getElementById("inputInfoNumber").value - var infoRarity = document.getElementById("inputInfoRarity").value - var infoSet = document.getElementById("inputInfoSet").value - var infoLanguage = document.getElementById("inputInfoLanguage").value - var infoArtist = document.getElementById("inputInfoArtist").value - var infoMessage = "*" + document.getElementById("inputInfoMessage").value + "*" - var infoSetLanguage = infoSet + " \u00b7 " + infoLanguage - textContext.font = "18px gothammedium" - textContext.fillStyle = "white" - textContext.fillText(infoNumber, cwidth(47), cheight(997)) - textContext.fillText(infoRarity, cwidth(54) + textContext.measureText(infoNumber).width, cheight(997)) - textContext.fillText(infoMessage, cwidth(61) + textContext.measureText(infoNumber).width + textContext.measureText(infoRarity).width, cheight(997)) - textContext.fillText(infoSetLanguage, cwidth(47), cheight(1016)) - var rarityArtistShift = textContext.measureText(infoSetLanguage).width + 54 - imgArtistBrush.load("none", rarityArtistShift, cheight(1003), cwidth(21), cheight(13)) - textContext.mask(imgArtistBrush, "none", textContext.fillStyle) - textContext.font = "18px belerenbsc" - textContext.fillText(infoArtist, rarityArtistShift + cwidth(25), cheight(1016)) - textContext.font = "18px mplantin" - textContext.textAlign = "right" - var copyrightMessage = "\u2122 & \u00a9 " + date.getFullYear() + " Wizards of the Coast" - var copyrightY = cheight(997) - if (document.getElementById("inputCheckboxPowerToughness").checked && cardData.creature) { - copyrightY = cheight(1016) - } - textContext.fillText(copyrightMessage, cwidth(700), copyrightY) - textContext.textAlign = "left" - drawCard() -} - -function sectionOtherFunction() { - //clears the 'other' canvas - otherContext.clearRect(0, 0, cardWidth, cardHeight) - if (document.getElementById("inputCheckboxSetSymbol").checked && cardData.setSymbolAlignment != "none") { - //Set Symbol - switch(cardData.setSymbolAlignment) { - case "left": - setSymbolAlignment = -1 - break - case "center": - setSymbolAlignment = 1/2 - break - default: - setSymbolAlignment = 1 - } - var setSymbolWidth = cardData.setSymbolWidth - var setSymbolHeight = imgSetSymbol.height / imgSetSymbol.width * setSymbolWidth - if (setSymbolHeight > cardData.setSymbolHeight) { - setSymbolHeight = cardData.setSymbolHeight - setSymbolWidth = imgSetSymbol.width / imgSetSymbol.height * setSymbolHeight - } - setSymbolWidth *= parseInt(document.getElementById("inputSetSymbolScale").value) / 100 - setSymbolHeight *= parseInt(document.getElementById("inputSetSymbolScale").value) / 100 - otherContext.drawImage(imgSetSymbol, cardData.setSymbolX - setSymbolWidth * setSymbolAlignment, cardData.setSymbolY - setSymbolHeight / 2, setSymbolWidth, setSymbolHeight) - } - if (document.getElementById("inputCheckboxWatermark").checked) { - //Watermark - var watermarkWidth = cardData.watermarkWidth - var watermarkHeight = imgWatermark.height / imgWatermark.width * watermarkWidth - if (watermarkHeight > cardData.watermarkHeight) { - watermarkHeight = cardData.watermarkHeight - watermarkWidth = imgWatermark.width / imgWatermark.height * watermarkHeight - } - imgWatermark.xVal = cardWidth / 2 - watermarkWidth / 2 - imgWatermark.yVal = cardData.watermarkY - watermarkHeight / 2 - imgWatermark.wVal = watermarkWidth - imgWatermark.hVal = watermarkHeight - otherContext.globalAlpha = parseInt(document.getElementById("inputWatermarkOpacity").value) / 100 - if (document.getElementById("inputCheckboxSecondWatermark").checked) { - otherContext.mask(imgWatermark, "imgMultiGradient,source-over;imgWhite,source-out", document.getElementById("inputWatermarkColor").value) - otherContext.mask(imgWatermark, "imgMultiGradient,source-over", document.getElementById("inputSecondWatermarkColor").value) - } else { - otherContext.mask(imgWatermark, "none", document.getElementById("inputWatermarkColor").value) - } - otherContext.globalAlpha = 1 - } - drawCard() -} - -function drawCard() { - //Clears the card - cardContext.mask(imgWhite, "none", document.getElementById("inputBorderColor").value) - //Draws the card art - cardContext.drawImage(imgCardArt, parseInt(document.getElementById("inputCardArtX").value) + cardData.cardArtX, parseInt(document.getElementById("inputCardArtY").value) + cardData.cardArtY, imgCardArt.width * document.getElementById("inputCardArtZoom").value / 100, imgCardArt.height * document.getElementById("inputCardArtZoom").value / 100) - //Might do something special? Usually the ability lines for planeswalkers - if (cardData.specialImageA == true) { - cardContext.drawImage(specialACanvas, 0, 0, cardWidth, cardHeight) - } - //Draws the card frame - cardContext.drawImage(frameCanvas, 0, 0, cardWidth, cardHeight) - //Might do something special? Usually the ability icons for planeswalkers - if (cardData.specialImageB == true) { - cardContext.drawImage(specialBCanvas, 0, 0, cardWidth, cardHeight) - } - //Draws the card text - cardContext.drawImage(textCanvas, 0, 0, cardWidth, cardHeight) - //Draws the other stuff - cardContext.drawImage(otherCanvas, 0, 0, cardWidth, cardHeight) - //Erase anything if needed - cardContext.globalCompositeOperation = "destination-out" - cardContext.mask(imgCornerMask) - cardContext.globalCompositeOperation = "source-over" - //Draws the card onto the visible canvas - context.clearRect(0, 0, canvas.width, canvas.height) - if (cardData.horizontal) { - context.rotate(-90 * Math.PI / 180) - context.drawImage(cardCanvas, -canvas.height, 0, canvas.height, canvas.width) - context.rotate(90 * Math.PI / 180) - } else { - context.drawImage(cardCanvas, 0, 0, canvas.width, canvas.height) - } -} - - - -//Gives all the select boxes the same color options to choose from -//loadColors("white-White,blue-Blue,colorlessLand-Colorless Land,gold-Gold"), this is an example of how to use the function -function loadColors(colors) { - var endResult = "" - var colorList = colors.split(",") - for (var i = 0; i < colorList.length; i++) { - endResult += "" - } - for (var i = 0; i < document.getElementsByClassName("selectColor").length; i++) { - document.getElementsByClassName("selectColor")[i].innerHTML = endResult - } -} -//changeme? -// loadColors("white-White,blue-Blue,black-Black,red-Red,green-Green,gold-Gold,artifact-Artifact,colorless-Colorless,vehicle-Vehicle,clear-Clear,whiteLand-White Land,blueLand-Blue Land,blackLand-Black Land,redLand-Red Land,greenLand-Green Land,goldLand-Gold Land,colorlessLand-Colorless Land") - -//It's easier to generate the mana symbol list via js, so do it here -var symbolList = "" -for (var i = 0; i < manaSymbolCodeList.length; i++) { - symbolList += "
" + manaSymbolCodeList[i] + "
" + "
" -} -document.getElementById("symbolList").innerHTML += symbolList - -//Randomizes the sample cards at the bottom of the page. -function randomizeSampleCards(count) { - var cardNumbers = [] - while (cardNumbers.length < 3) { - var randomNumber = Math.floor(Math.random() * count) + 1 - if (cardNumbers.indexOf(randomNumber) > -1) { - continue - } - cardNumbers[cardNumbers.length] = randomNumber - var imgName = "sampleCard" + cardNumbers.length - window[imgName] = new Image() - window[imgName].src = "data/site/sampleCards/sample" + randomNumber + ".png" - } - sampleCard1.onload = function() { - document.getElementById("sampleCardA").src = sampleCard1.src - } - sampleCard2.onload = function() { - document.getElementById("sampleCardB").src = sampleCard2.src - } - sampleCard3.onload = function() { - document.getElementById("sampleCardC").src = sampleCard3.src - } -} - - - -//============================================// -// Misc Stuff // -//============================================// -//Allows javascript files to be loaded through javascript code -function loadScript(scriptName){ - var script = document.createElement("script") - script.setAttribute("type","text/javascript") - script.setAttribute("src", scriptName) - if (typeof script != "undefined") { - document.getElementsByTagName("head")[0].appendChild(script) - } -} - -//Loads card art from Scryfall's API via card name! -function inputCardArtName(cardArtNameInput) { - var xhttp = new XMLHttpRequest() - xhttp.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - savedArtList = this.responseText.split('"art_crop":"') - savedArtList.splice(0, 1) - document.getElementById("inputCardArtNameNumber").max = savedArtList.length - document.getElementById("inputCardArtNameNumber").value = 1 - for (i = 0; i < savedArtList.length; i ++) { - cardArtUrlList[i] = savedArtList[i].split('","border_crop":')[0] - } - for (i = 0; i < savedArtList.length; i ++) { - cardArtArtistList[i] = savedArtList[i].slice(savedArtList[i].indexOf('"artist":"') + 10, savedArtList[i].indexOf('","border_color":')) - } - inputCardArtNameNumber(1) - } else if (this.readyState == 4 && this.status == 404) { - alert("Sorry, but we can't seem to find any art for '" + cardArtNameInput + "'") - } - } - xhttp.open("GET", "https://api.scryfall.com/cards/search?order=released&unique=art&q=name%3D" + cardArtNameInput.replace(/ /g, "_"), true) - xhttp.send() -} -function inputCardArtNameNumber(cardArtNameNumberInput) { - imgCardArt.load("https://cors-anywhere.herokuapp.com/" + cardArtUrlList[cardArtNameNumberInput - 1]) - document.getElementById("inputInfoArtist").value = cardArtArtistList[cardArtNameNumberInput - 1] - sectionTextFunction() -} - -//Downloads the image! -function downloadCardImage(linkElement) { - if (document.getElementById("inputName").value != "") { - linkElement.download = document.getElementById("inputName").value.toLowerCase() + ".png" - } - var cardImageData = cardCanvas.toDataURL() - if (cardImageData == undefined) { - alert("Sorry, it seems that you cannot download your card. Please try using a different browser/device.") - } - linkElement.href = cardImageData -} - -//============================================// -// Special Image Loading // -//============================================// -function loadLegendaryImages() { - if (cardData.legendary) { - if (document.getElementById("inputCheckboxPinline").checked) { - imgLegendary.load(imgPinline.src.replace("frame.png", "legendary.png")) - imgLegendaryRight.load(imgPinlineRight.src.replace("frame.png", "legendary.png")) - } else { - imgLegendary.load(imgFrame.src.replace("frame.png", "legendary.png")) - imgLegendaryRight.load(imgFrameRight.src.replace("frame.png", "legendary.png")) - } - } -} -function loadRareStampImages() { - if (cardData.rareStamp) { - if (document.getElementById("inputCheckboxPinline").checked) { - imgRareStamp.load(imgPinline.src.replace("frame.png", "stamp.png")) - imgRareStampRight.load(imgPinlineRight.src.replace("frame.png", "stamp.png")) - } else { - imgRareStamp.load(imgFrame.src.replace("frame.png", "stamp.png")) - imgRareStampRight.load(imgFrameRight.src.replace("frame.png", "stamp.png")) - } - } -} -function loadMiracleImages() { - if (cardData.miracle) { - if (document.getElementById("inputCheckboxTitleTypeBoxes").checked) { - imgMiracle.load(imgTitleTypeBoxes.src.replace("frame.png", "miracle.png")) - imgMiracleRight.load(imgTitleTypeBoxesRight.src.replace("frame.png", "miracle.png")) - } else { - imgMiracle.load(imgFrame.src.replace("frame.png", "miracle.png")) - imgMiracleRight.load(imgFrameRight.src.replace("frame.png", "miracle.png")) - } - } -} -function loadNyxImages() { - if (cardData.nyx) { - imgNyx.load(imgFrame.src.replace("frame.png", "nyx.png")) - imgNyxRight.load(imgFrameRight.src.replace("frame.png", "nyx.png")) - } -} -function changePowerToughnessColor() { - if (cardData.creature) { - if (document.getElementById("inputCheckboxFrameRight").checked) { - imgPowerToughness.load(document.getElementById("inputFrameRightColor").value + 'pt.png') - } else { - imgPowerToughness.load(document.getElementById("inputFrameColor").value + 'pt.png') - } - } -} -for (var i = 0; i < document.getElementsByClassName("changesFrame").length; i++) { - document.getElementsByClassName("changesFrame")[i].addEventListener("change", function() {loadLegendaryImages(); loadRareStampImages(); loadNyxImages(); loadMiracleImages(); changePowerToughnessColor()}, false) -} -for (var i = 0; i < document.getElementsByClassName("changesTitleType").length; i++) { - document.getElementsByClassName("changesTitleType")[i].addEventListener("change", function() {loadMiracleImages()}, false) -} -for (var i = 0; i < document.getElementsByClassName("changesPinline").length; i++) { - document.getElementsByClassName("changesPinline")[i].addEventListener("change", function() {loadLegendaryImages(); loadRareStampImages()}, false) -} -//============================================// -// Brower Stuff! // -//============================================// -//Determine browser -if(navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/BlackBerry/i) || navigator.userAgent.match(/Windows Phone/i) ) { - var isMobile = true -} else { - var isMobile = false -} -var isChrome = navigator.userAgent.indexOf("Chrome") > -1 -var isExplorer = navigator.userAgent.indexOf("MSIE") > -1 -var isFirefox = navigator.userAgent.indexOf("Firefox") > -1 -var isSafari = navigator.userAgent.indexOf("Safari") > -1 -if (isChrome == true && isSafari == true) { - isSafari = false -} -//Now act on different browser craziness... -if (isSafari == true) { - if (isMobile == true) { - //Safari for iOS - textBaselineShift = [-0.17, -0.08] - } else { - //Safari for macOS - textBaselineShift = [-0.17, 0] - } -} -function setCookie(cookieName, cookieValue, cookieTime = (5 * 365 * 24 * 60 * 60 * 1000)) { //years*days*hours*minutes*seconds*milliseconds - var tempDate = new Date(); - tempDate.setTime(tempDate.getTime() + cookieTime); - var expires = "expires=" + tempDate.toUTCString(); - document.cookie = cookieName + "=" + cookieValue + ";" + expires + ";path=/"; -} -function getCookie(cookieName) { - var name = cookieName + "="; - var cookieArray = document.cookie.split(";"); - for(var i = 0; i < cookieArray.length; i++) { - var tempCookie = cookieArray[i]; - while (tempCookie.charAt(0) == " ") { - tempCookie = tempCookie.substring(1); - } - if (tempCookie.indexOf(name) == 0) { - return tempCookie.substring(name.length, tempCookie.length); - } - } - return ""; -} -function checkCookies() { - if (getCookie("visits") == "") { - if (isMobile == true) { - createAlert("warning", "Card Conjurer is optimized for computers. Your mobile device should work fine, but if you notice any problems try switching to another device.") - } else if (isChrome == false) { - createAlert("warning", "Unfortunately different browsers treat custom fonts differently and it appears that you are using a browser other than Chrome. Everything may work perfectly, but if you notice that the text looks odd try switching to Chrome.") - } - setCookie("visits", "1") - setCookie("cookieUpdated", cookieUpdate) - } else { - var visitCount = parseInt(getCookie("visits")) - visitCount += 1 - setCookie("visits", "" + visitCount) - if (getCookie("cookieUpdated") != cookieUpdate) { - createAlert("info", "Card Conjurer has been updated since your last visit and now features Vanguard cards! (those old MTG ones, not the other game) Feel free to contact me at CardConjurerMTG@gmail.com if you would like to request a border style or have any questions.") - setCookie("cookieUpdated", cookieUpdate) - } else { - if (visitCount % 50 == 0) { - //every 50 visits: - createAlert("info", "Thanks for using Card Conjurer! I would love to see some of the custom cards you've made, feel free send some over to CardConjurerMTG@gmail.com") - } - } - } -} - - -//============================================// -// OTHER // -//============================================// -//changeme (FIND A BETTER PLACE FOR THIS) -function cwidth(originalValue = 750, originalCardWidth = 750) { - return (originalValue / originalCardWidth * cardWidth) -} -function cheight(originalValue = 1050, originalCardHeight = 1050) { - return (originalValue / originalCardHeight * cardHeight) -} - -//Runs stuff at the very end (once everything is set up) -setTimeout(function(){checkCookies()}, 1005) -backToDefault("m15") -loadScript("data/other/setCodeList.js") -//changeme -setTimeout(function(){sectionTextFunction()}, 250) -setTimeout(function(){sectionTextFunction()}, 500) -setTimeout(function(){sectionTextFunction()}, 1000) -// Only for working on frames n' stuff :) -// setTimeout(function(){ -// document.getElementById("inputCardVersion").value = "vanguard" -// document.getElementById("inputCardVersion").onchange() -// }, 500) - -//============================================// -// RIP OLD CARD CONJURER // -//============================================// - -// //COLOR IDENTITY -// if (document.getElementById("checkboxIdentity").checked == true) { -// var identityList = document.getElementById("inputIdentity").value.toLowerCase().split(" ") -// var angleSize = Math.PI * 2 / identityList.length -// var identityRadius = 14 -// var identityX = typeX -// if (typeAlign == "left") { -// identityX += 8 -// } -// var identityY = typeY + 15 -// switch (identityList.length) { -// case 1: -// var originAngle = 0 -// break; -// case 2: -// var originAngle = 3 * Math.PI / 4 -// break; -// case 3: -// var originAngle = 7 * Math.PI / 6 -// break; -// case 4: -// var originAngle = 3 * Math.PI / 2 -// break; -// case 5: -// var originAngle = 13 * Math.PI / 10 -// break; -// default: -// var originAngle = 0 -// } -// for (var i = 0; i < identityList.length; i ++) { -// switch (identityList[i]) { -// case "w": -// border.fillStyle = "#f3f2ef" -// break; -// case "u": -// border.fillStyle = "#1d7097" -// break; -// case "b": -// border.fillStyle = "#31302e" -// break; -// case "r": -// border.fillStyle = "#bf544c" -// break; -// case "g": -// border.fillStyle = "#1c6449" -// break; -// case "m": -// border.fillStyle = "#e3d591" -// break; -// default: -// border.fillStyle = "#e0e0e0" -// } -// var startAngle = originAngle + i * angleSize -// border.beginPath() -// border.moveTo(identityX, identityY) -// border.arc(identityX, identityY, identityRadius, startAngle, startAngle + angleSize) -// border.lineTo(identityX, identityY) -// border.fill() -// } -// border.drawImage(imgIdentity, identityX - identityRadius, identityY - identityRadius, 2 * identityRadius, 2 * identityRadius) -// typeWidthShift = 33 -// } else { -// typeWidthShift = 0 -// } \ No newline at end of file diff --git a/old/data/manaSymbols/0.png b/old/data/manaSymbols/0.png deleted file mode 100644 index af88e794..00000000 Binary files a/old/data/manaSymbols/0.png and /dev/null differ diff --git a/old/data/manaSymbols/1.png b/old/data/manaSymbols/1.png deleted file mode 100644 index 82e78834..00000000 Binary files a/old/data/manaSymbols/1.png and /dev/null differ diff --git a/old/data/manaSymbols/10.png b/old/data/manaSymbols/10.png deleted file mode 100644 index 3e690aa2..00000000 Binary files a/old/data/manaSymbols/10.png and /dev/null differ diff --git a/old/data/manaSymbols/11.png b/old/data/manaSymbols/11.png deleted file mode 100644 index 8783c2bb..00000000 Binary files a/old/data/manaSymbols/11.png and /dev/null differ diff --git a/old/data/manaSymbols/12.png b/old/data/manaSymbols/12.png deleted file mode 100644 index 74fc1965..00000000 Binary files a/old/data/manaSymbols/12.png and /dev/null differ diff --git a/old/data/manaSymbols/13.png b/old/data/manaSymbols/13.png deleted file mode 100644 index 6af5e76c..00000000 Binary files a/old/data/manaSymbols/13.png and /dev/null differ diff --git a/old/data/manaSymbols/14.png b/old/data/manaSymbols/14.png deleted file mode 100644 index 778e71c6..00000000 Binary files a/old/data/manaSymbols/14.png and /dev/null differ diff --git a/old/data/manaSymbols/15.png b/old/data/manaSymbols/15.png deleted file mode 100644 index 0e2c368c..00000000 Binary files a/old/data/manaSymbols/15.png and /dev/null differ diff --git a/old/data/manaSymbols/16.png b/old/data/manaSymbols/16.png deleted file mode 100644 index fe808e5e..00000000 Binary files a/old/data/manaSymbols/16.png and /dev/null differ diff --git a/old/data/manaSymbols/17.png b/old/data/manaSymbols/17.png deleted file mode 100644 index f91a58f9..00000000 Binary files a/old/data/manaSymbols/17.png and /dev/null differ diff --git a/old/data/manaSymbols/18.png b/old/data/manaSymbols/18.png deleted file mode 100644 index 723eb4cf..00000000 Binary files a/old/data/manaSymbols/18.png and /dev/null differ diff --git a/old/data/manaSymbols/19.png b/old/data/manaSymbols/19.png deleted file mode 100644 index dae11a22..00000000 Binary files a/old/data/manaSymbols/19.png and /dev/null differ diff --git a/old/data/manaSymbols/2.png b/old/data/manaSymbols/2.png deleted file mode 100644 index b3d82fcb..00000000 Binary files a/old/data/manaSymbols/2.png and /dev/null differ diff --git a/old/data/manaSymbols/20.png b/old/data/manaSymbols/20.png deleted file mode 100644 index 526ca221..00000000 Binary files a/old/data/manaSymbols/20.png and /dev/null differ diff --git a/old/data/manaSymbols/21.png b/old/data/manaSymbols/21.png deleted file mode 100644 index a1d9c533..00000000 Binary files a/old/data/manaSymbols/21.png and /dev/null differ diff --git a/old/data/manaSymbols/22.png b/old/data/manaSymbols/22.png deleted file mode 100644 index 857e726e..00000000 Binary files a/old/data/manaSymbols/22.png and /dev/null differ diff --git a/old/data/manaSymbols/23.png b/old/data/manaSymbols/23.png deleted file mode 100644 index 80ae2b7a..00000000 Binary files a/old/data/manaSymbols/23.png and /dev/null differ diff --git a/old/data/manaSymbols/24.png b/old/data/manaSymbols/24.png deleted file mode 100644 index dd85d92a..00000000 Binary files a/old/data/manaSymbols/24.png and /dev/null differ diff --git a/old/data/manaSymbols/25.png b/old/data/manaSymbols/25.png deleted file mode 100644 index 2a268369..00000000 Binary files a/old/data/manaSymbols/25.png and /dev/null differ diff --git a/old/data/manaSymbols/26.png b/old/data/manaSymbols/26.png deleted file mode 100644 index 6b6e6a0e..00000000 Binary files a/old/data/manaSymbols/26.png and /dev/null differ diff --git a/old/data/manaSymbols/27.png b/old/data/manaSymbols/27.png deleted file mode 100644 index 0531ac2d..00000000 Binary files a/old/data/manaSymbols/27.png and /dev/null differ diff --git a/old/data/manaSymbols/28.png b/old/data/manaSymbols/28.png deleted file mode 100644 index 3a0dbe05..00000000 Binary files a/old/data/manaSymbols/28.png and /dev/null differ diff --git a/old/data/manaSymbols/29.png b/old/data/manaSymbols/29.png deleted file mode 100644 index 4e393bec..00000000 Binary files a/old/data/manaSymbols/29.png and /dev/null differ diff --git a/old/data/manaSymbols/3.png b/old/data/manaSymbols/3.png deleted file mode 100644 index a4aaedc6..00000000 Binary files a/old/data/manaSymbols/3.png and /dev/null differ diff --git a/old/data/manaSymbols/30.png b/old/data/manaSymbols/30.png deleted file mode 100644 index 58101dea..00000000 Binary files a/old/data/manaSymbols/30.png and /dev/null differ diff --git a/old/data/manaSymbols/31.png b/old/data/manaSymbols/31.png deleted file mode 100644 index 373d75d9..00000000 Binary files a/old/data/manaSymbols/31.png and /dev/null differ diff --git a/old/data/manaSymbols/32.png b/old/data/manaSymbols/32.png deleted file mode 100644 index 68a07790..00000000 Binary files a/old/data/manaSymbols/32.png and /dev/null differ diff --git a/old/data/manaSymbols/33.png b/old/data/manaSymbols/33.png deleted file mode 100644 index 913b43fe..00000000 Binary files a/old/data/manaSymbols/33.png and /dev/null differ diff --git a/old/data/manaSymbols/34.png b/old/data/manaSymbols/34.png deleted file mode 100644 index c9b83bcb..00000000 Binary files a/old/data/manaSymbols/34.png and /dev/null differ diff --git a/old/data/manaSymbols/35.png b/old/data/manaSymbols/35.png deleted file mode 100644 index 98c7fbf5..00000000 Binary files a/old/data/manaSymbols/35.png and /dev/null differ diff --git a/old/data/manaSymbols/36.png b/old/data/manaSymbols/36.png deleted file mode 100644 index fcdd4393..00000000 Binary files a/old/data/manaSymbols/36.png and /dev/null differ diff --git a/old/data/manaSymbols/37.png b/old/data/manaSymbols/37.png deleted file mode 100644 index 0c1d2da5..00000000 Binary files a/old/data/manaSymbols/37.png and /dev/null differ diff --git a/old/data/manaSymbols/38.png b/old/data/manaSymbols/38.png deleted file mode 100644 index 216251fa..00000000 Binary files a/old/data/manaSymbols/38.png and /dev/null differ diff --git a/old/data/manaSymbols/39.png b/old/data/manaSymbols/39.png deleted file mode 100644 index dc47735a..00000000 Binary files a/old/data/manaSymbols/39.png and /dev/null differ diff --git a/old/data/manaSymbols/4.png b/old/data/manaSymbols/4.png deleted file mode 100644 index 08d75a97..00000000 Binary files a/old/data/manaSymbols/4.png and /dev/null differ diff --git a/old/data/manaSymbols/40.png b/old/data/manaSymbols/40.png deleted file mode 100644 index 8574ed78..00000000 Binary files a/old/data/manaSymbols/40.png and /dev/null differ diff --git a/old/data/manaSymbols/41.png b/old/data/manaSymbols/41.png deleted file mode 100644 index 821e894a..00000000 Binary files a/old/data/manaSymbols/41.png and /dev/null differ diff --git a/old/data/manaSymbols/42.png b/old/data/manaSymbols/42.png deleted file mode 100644 index 9c8aab59..00000000 Binary files a/old/data/manaSymbols/42.png and /dev/null differ diff --git a/old/data/manaSymbols/43.png b/old/data/manaSymbols/43.png deleted file mode 100644 index 471b974c..00000000 Binary files a/old/data/manaSymbols/43.png and /dev/null differ diff --git a/old/data/manaSymbols/44.png b/old/data/manaSymbols/44.png deleted file mode 100644 index 68ccd442..00000000 Binary files a/old/data/manaSymbols/44.png and /dev/null differ diff --git a/old/data/manaSymbols/45.png b/old/data/manaSymbols/45.png deleted file mode 100644 index c8526e5c..00000000 Binary files a/old/data/manaSymbols/45.png and /dev/null differ diff --git a/old/data/manaSymbols/46.png b/old/data/manaSymbols/46.png deleted file mode 100644 index 776fa89d..00000000 Binary files a/old/data/manaSymbols/46.png and /dev/null differ diff --git a/old/data/manaSymbols/47.png b/old/data/manaSymbols/47.png deleted file mode 100644 index 235144f0..00000000 Binary files a/old/data/manaSymbols/47.png and /dev/null differ diff --git a/old/data/manaSymbols/48.png b/old/data/manaSymbols/48.png deleted file mode 100644 index 357dce5d..00000000 Binary files a/old/data/manaSymbols/48.png and /dev/null differ diff --git a/old/data/manaSymbols/49.png b/old/data/manaSymbols/49.png deleted file mode 100644 index fa50da49..00000000 Binary files a/old/data/manaSymbols/49.png and /dev/null differ diff --git a/old/data/manaSymbols/5.png b/old/data/manaSymbols/5.png deleted file mode 100644 index f6930ee8..00000000 Binary files a/old/data/manaSymbols/5.png and /dev/null differ diff --git a/old/data/manaSymbols/50.png b/old/data/manaSymbols/50.png deleted file mode 100644 index 56392649..00000000 Binary files a/old/data/manaSymbols/50.png and /dev/null differ diff --git a/old/data/manaSymbols/51.png b/old/data/manaSymbols/51.png deleted file mode 100644 index 3b098dcc..00000000 Binary files a/old/data/manaSymbols/51.png and /dev/null differ diff --git a/old/data/manaSymbols/52.png b/old/data/manaSymbols/52.png deleted file mode 100644 index fba0f73e..00000000 Binary files a/old/data/manaSymbols/52.png and /dev/null differ diff --git a/old/data/manaSymbols/53.png b/old/data/manaSymbols/53.png deleted file mode 100644 index 5ce5d5ab..00000000 Binary files a/old/data/manaSymbols/53.png and /dev/null differ diff --git a/old/data/manaSymbols/54.png b/old/data/manaSymbols/54.png deleted file mode 100644 index 9dbedb27..00000000 Binary files a/old/data/manaSymbols/54.png and /dev/null differ diff --git a/old/data/manaSymbols/55.png b/old/data/manaSymbols/55.png deleted file mode 100644 index a199cc76..00000000 Binary files a/old/data/manaSymbols/55.png and /dev/null differ diff --git a/old/data/manaSymbols/56.png b/old/data/manaSymbols/56.png deleted file mode 100644 index 4b6c92cd..00000000 Binary files a/old/data/manaSymbols/56.png and /dev/null differ diff --git a/old/data/manaSymbols/57.png b/old/data/manaSymbols/57.png deleted file mode 100644 index d03c020b..00000000 Binary files a/old/data/manaSymbols/57.png and /dev/null differ diff --git a/old/data/manaSymbols/58.png b/old/data/manaSymbols/58.png deleted file mode 100644 index aef16f82..00000000 Binary files a/old/data/manaSymbols/58.png and /dev/null differ diff --git a/old/data/manaSymbols/59.png b/old/data/manaSymbols/59.png deleted file mode 100644 index a051fa3e..00000000 Binary files a/old/data/manaSymbols/59.png and /dev/null differ diff --git a/old/data/manaSymbols/6.png b/old/data/manaSymbols/6.png deleted file mode 100644 index 09f74d0d..00000000 Binary files a/old/data/manaSymbols/6.png and /dev/null differ diff --git a/old/data/manaSymbols/60.png b/old/data/manaSymbols/60.png deleted file mode 100644 index 3f8e6565..00000000 Binary files a/old/data/manaSymbols/60.png and /dev/null differ diff --git a/old/data/manaSymbols/61.png b/old/data/manaSymbols/61.png deleted file mode 100644 index 975af655..00000000 Binary files a/old/data/manaSymbols/61.png and /dev/null differ diff --git a/old/data/manaSymbols/7.png b/old/data/manaSymbols/7.png deleted file mode 100644 index 51e4783c..00000000 Binary files a/old/data/manaSymbols/7.png and /dev/null differ diff --git a/old/data/manaSymbols/8.png b/old/data/manaSymbols/8.png deleted file mode 100644 index 3aefd2b9..00000000 Binary files a/old/data/manaSymbols/8.png and /dev/null differ diff --git a/old/data/manaSymbols/9.png b/old/data/manaSymbols/9.png deleted file mode 100644 index e4ad3213..00000000 Binary files a/old/data/manaSymbols/9.png and /dev/null differ diff --git a/old/data/other/setCodeList.js b/old/data/other/setCodeList.js deleted file mode 100644 index d642a1a3..00000000 --- a/old/data/other/setCodeList.js +++ /dev/null @@ -1,90 +0,0 @@ -/* -This is a list of set codes. -It has all been typed manually, so there are possibly errors, but let's hope not! -Duplicates found and removed: ORI, W17, CED -Sets not found: Astral, Deckmasters, Duels of the Planeswalkers -The codes have been resourced from the following: -https://en.wikipedia.org/wiki/List_of_Magic:_The_Gathering_sets -Last updated: 6-23-19 -Last set added: MH1 -*/ -//Common through Rare -var setCodeListPreMythic = ['1E', '2E', '2U', '3E', '4E', '5E', '6E', '7E', '8ED', '9ED', '10E', 'AN', -'AQ', 'LE', 'DK', 'FE', 'HM', 'IA', 'AL', 'MI', 'VI', 'WL', 'TE', 'ST', 'EX', 'UZ', 'GU', 'AP', 'OD', -'TOR', 'JUD', 'ONS', 'LGN', 'SCG', 'MRD', 'DST', '5DN', 'CHK', 'BOK', 'SOK', 'RAV', 'GPT', 'DIS', 'CSP', -'TSP', 'PLC', 'FUT', 'LRW', 'MOR', 'SHM', 'EVE', 'PO', 'P2', 'PK', 'P3', 'P4', 'CH', 'BR', 'BD', 'EVG', -'UG', 'UNH', 'MED', 'ME2', 'ME3', 'ME4', 'HOP'] -//Common through Mythic -var setCodeListPostMythic = ['M10', 'M11', 'M12', 'M13', 'M14', 'M15', 'ORI', 'M19', 'ALA', 'CON', -'ARB', 'ZEN', 'WWK', 'ROE', 'SOM', 'MBS', 'NPH', 'ISD', 'DKA', 'AVR', 'RTR', 'GTC', 'DGM', 'THS', 'BNG', -'JOU', 'KTK', 'FRF', 'DTK', 'BFZ', 'OGW', 'SOI', 'EMN', 'KLD', 'AER', 'AKH', 'HOU', 'XLN', 'RIX', 'DOM', -'GRN', 'RNA', 'MH1', 'GS1', 'MD1', 'DD2', 'DDC', 'DDD', 'DDE', 'DDF', 'DDG', 'DDH', 'DDI', 'DDJ', 'DDK', -'DDL', 'DDM', 'DDN', 'DDP', 'DDQ', 'DDR', 'DDS', 'DDT', 'DDU', 'SS1', 'H09', 'PD2', 'PD3', 'MMA', 'MM2', -'EMA', 'MM3', 'IMA', 'A25', 'UMA', 'PC2', 'PCA', 'ARC', 'E01', 'CMD', 'CM1', 'C13', 'C14', 'C15', -'C16', 'CMA', 'C17', 'CM2', 'C18', 'CNS', 'CN2', 'E02', 'BBD', 'UST', 'VMA', 'TPR', 'W16', 'W17', -'GK1_IZZET', 'GK1_SELESN', 'GK1_BOROS', 'GK1_GOLGAR', 'GK2_RAKDOS', 'GK2_AZORIU', 'GK2_SIMIC', -'GK2_GRUUL', 'GK2_ORZHOV', 'WAR'] -//Only Rare -var setCodeListRareOnly = ['DRB'] -//Only Mythic -var setCodeListMythicOnly = ['V09', 'V10', 'V11', 'V12', 'V13', 'V14', 'V15', 'V16', 'V17', 'EXP', 'MPS_GRN'] -//Only Special -var setCodeListSpecialOnly = ['MPS_KLD', 'MPS_AKH'] - -randomSet() -function randomSet() { - var totalSetCount = setCodeListPreMythic.length + setCodeListPostMythic.length + setCodeListMythicOnly.length + setCodeListSpecialOnly.length - var randomSet = Math.floor(Math.random() * totalSetCount) - var possibleRarities, rarity, set - if (randomSet < setCodeListPreMythic.length) { - set = setCodeListPreMythic[randomSet] - possibleRarities = 3 - } else { - randomSet -= setCodeListPreMythic.length - if (randomSet < setCodeListPostMythic.length) { - set = setCodeListPostMythic[randomSet] - possibleRarities = 4 - } else { - randomSet -= setCodeListPostMythic.length - if (randomSet < setCodeListRareOnly.length) { - set = setCodeListRareOnly[randomSet] - possibleRarities = 7 - } else { - randomSet -= setCodeListRareOnly.length - if (randomSet < setCodeListMythicOnly.length) { - set = setCodeListMythicOnly[randomSet] - possibleRarities = 8 - } else { - randomSet -= setCodeListMythicOnly.length - set = setCodeListSpecialOnly[randomSet] - possibleRarities = 9 - } - } - - } - } - if (possibleRarities == 7) { - rarity = "R" - } else if (possibleRarities == 8) { - rarity = "M" - } else if (possibleRarities == 9) { - rarity = "S" - } else { - switch(Math.floor(Math.random() * possibleRarities)) { - case 3: - rarity = "M" - break - case 2: - rarity = "R" - break - case 1: - rarity = "U" - break - default: - rarity = "C" - } - } - document.getElementById("inputSetSymbolCode").value = set - document.getElementById("inputSetSymbolRarity").value = rarity - imageURL("http://gatherer.wizards.com/Handlers/Image.ashx?type=symbol&set=" + set + "&size=large&rarity=" + rarity, imgSetSymbol, "needsCrop") -} \ No newline at end of file diff --git a/old/data/site/icons/izzetright.png b/old/data/site/icons/izzetright.png deleted file mode 100644 index b533b395..00000000 Binary files a/old/data/site/icons/izzetright.png and /dev/null differ diff --git a/old/data/site/icons/massdrop.png b/old/data/site/icons/massdrop.png deleted file mode 100644 index 00920675..00000000 Binary files a/old/data/site/icons/massdrop.png and /dev/null differ diff --git a/old/data/site/icons/patreon.png b/old/data/site/icons/patreon.png deleted file mode 100644 index 36c0fca7..00000000 Binary files a/old/data/site/icons/patreon.png and /dev/null differ diff --git a/old/data/site/icons/paypal.png b/old/data/site/icons/paypal.png deleted file mode 100644 index 0f36713d..00000000 Binary files a/old/data/site/icons/paypal.png and /dev/null differ diff --git a/old/data/site/icons/pucatrade.png b/old/data/site/icons/pucatrade.png deleted file mode 100644 index a55f8079..00000000 Binary files a/old/data/site/icons/pucatrade.png and /dev/null differ diff --git a/old/data/site/icons/twitter.png b/old/data/site/icons/twitter.png deleted file mode 100644 index 885ba87e..00000000 Binary files a/old/data/site/icons/twitter.png and /dev/null differ diff --git a/old/data/site/images/background-original.png b/old/data/site/images/background-original.png deleted file mode 100644 index d6becf80..00000000 Binary files a/old/data/site/images/background-original.png and /dev/null differ diff --git a/old/data/site/images/background.png b/old/data/site/images/background.png deleted file mode 100644 index 5635fb38..00000000 Binary files a/old/data/site/images/background.png and /dev/null differ diff --git a/old/data/site/images/favicon-original.png b/old/data/site/images/favicon-original.png deleted file mode 100644 index caf59b16..00000000 Binary files a/old/data/site/images/favicon-original.png and /dev/null differ diff --git a/old/data/site/images/title.png b/old/data/site/images/title.png deleted file mode 100644 index de02a50f..00000000 Binary files a/old/data/site/images/title.png and /dev/null differ diff --git a/old/data/site/main.js b/old/data/site/main.js deleted file mode 100644 index 8d28d883..00000000 --- a/old/data/site/main.js +++ /dev/null @@ -1,74 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -window.onscroll = function() {scrollFunction()} -window.onresize = function() {scrollFunction()} - -function scrollFunction() { - var scrollHeight = document.body.scrollTop - if (scrollHeight < 0) { - scrollHeight = 0 - } - var titleHeight = parseInt(window.innerWidth * 141 / 1236 - 10); - if (window.innerWidth >= 750) { - if (window.innerWidth >= 970) { - titleHeight = 100 - } - if (scrollHeight < titleHeight - 30) { - document.getElementById("header").style.maxHeight = titleHeight - scrollHeight - } else { - document.getElementById("header").style.maxHeight = "30px" - } - document.getElementsByClassName("mainGrid")[0].style.marginTop = titleHeight + 10 - } else { - document.getElementsByClassName("mainGrid")[0].style.marginTop = 0 - document.getElementById("header").style.maxHeight = titleHeight - } -} - -//Toggles the visibility of predetermined sections of the input boxes -function toggleView(targetId, targetClass) { - for (var i = 0; i < document.getElementsByClassName(targetClass).length; i++) { - document.getElementsByClassName(targetClass)[i].classList.remove("shown") - } - document.getElementById(targetClass + "-" + targetId).classList.add("shown") -} - -//Loads images from a file upload -function loadImage(event, destination) { - var input = event.target - var reader = new FileReader() - reader.onload = function() { - var dataURL = reader.result - destination.src = dataURL - destination.cropped = false - if (destination == imgWatermark) { - imgWatermark.whiteToTransparent = false - } - } - reader.readAsDataURL(input.files[0]) -} - -//closes alerts -var close = document.getElementsByClassName("closebtn") -for (var i = 0; i < close.length; i++) { - close[i].onclick = function() { - parentDiv = this.parentElement - parentDiv.style.opacity = "0" - setTimeout(function() {parentDiv.style.display = "none"}, 250) - } -} - -function createAlert(type, message) { - var newAlert = document.createElement("DIV") - newAlert.innerHTML = message - newAlert.classList.add("alert", type) - document.getElementById("alertMenu").appendChild(newAlert) - newAlert.onclick = function() { - this.style.opacity = "0" - setTimeout(function() {newAlert.classList.add("hidden")}, 250) - } -} - -//things to run at the end: -scrollFunction() \ No newline at end of file diff --git a/old/data/site/sampleCards/sample1.png b/old/data/site/sampleCards/sample1.png deleted file mode 100644 index 52d78237..00000000 Binary files a/old/data/site/sampleCards/sample1.png and /dev/null differ diff --git a/old/data/site/sampleCards/sample2.png b/old/data/site/sampleCards/sample2.png deleted file mode 100644 index 3fc43821..00000000 Binary files a/old/data/site/sampleCards/sample2.png and /dev/null differ diff --git a/old/data/site/sampleCards/sample3.png b/old/data/site/sampleCards/sample3.png deleted file mode 100644 index e92c3bf6..00000000 Binary files a/old/data/site/sampleCards/sample3.png and /dev/null differ diff --git a/old/data/site/sampleCards/sample4.png b/old/data/site/sampleCards/sample4.png deleted file mode 100644 index 66449eb4..00000000 Binary files a/old/data/site/sampleCards/sample4.png and /dev/null differ diff --git a/old/data/site/sampleCards/sample5.png b/old/data/site/sampleCards/sample5.png deleted file mode 100644 index b7d6fb47..00000000 Binary files a/old/data/site/sampleCards/sample5.png and /dev/null differ diff --git a/old/data/site/sampleCards/sample6.png b/old/data/site/sampleCards/sample6.png deleted file mode 100644 index f1d84939..00000000 Binary files a/old/data/site/sampleCards/sample6.png and /dev/null differ diff --git a/old/data/site/sampleCards/sample7.png b/old/data/site/sampleCards/sample7.png deleted file mode 100644 index b26786aa..00000000 Binary files a/old/data/site/sampleCards/sample7.png and /dev/null differ diff --git a/old/data/site/sampleCards/sample8.png b/old/data/site/sampleCards/sample8.png deleted file mode 100644 index 899144b0..00000000 Binary files a/old/data/site/sampleCards/sample8.png and /dev/null differ diff --git a/old/data/site/styles.css b/old/data/site/styles.css deleted file mode 100644 index f2ec249a..00000000 --- a/old/data/site/styles.css +++ /dev/null @@ -1,343 +0,0 @@ -/*fonts*/ -@font-face { - font-family: gothammedium; - src: url("../fonts/gotham-medium.ttf"); -} -@font-face { - font-family: belerenb; - src: url("../fonts/beleren-b.ttf"); -} -@font-face { - font-family: belerenbsc; - src: url("../fonts/beleren-bsc.ttf"); -} -@font-face { - font-family: matrix; - src: url("../fonts/matrix.ttf"); -} -@font-face { - font-family: matrixb; - src: url("../fonts/matrix-b.ttf"); -} -@font-face { - font-family: matrixbsc; - src: url("../fonts/matrix-bsc.ttf"); -} -@font-face { - font-family: mplantin; - src: url("../fonts/mplantin.ttf"); -} -@font-face { - font-family: mplantini; - src: url("../fonts/mplantin-i.ttf"); -} -@font-face { - font-family: goudymedieval; - src: url("../fonts/goudy-medieval.ttf"); -} - -:root { - /*Color Palette*/ - /*Regular*/ - --color-background: #00000077; - --color-background-darker: #000000aa; - --color-primary: #073c00; - --color-select: #0b6b00; -} - -/*Page-wide styling*/ -* { - font-family: belerenb; - font-size: 16pt; /*Master font size*/ - user-select: none; - color: #eee; -} -html { - background-color: #333; -} -body { - margin: 0; -} - -/*Grid styling*/ -.grid { - display: grid; -} -.mainGrid > div { - border-style: solid; - border-color: var(--color-primary); - border-width: 1px 1px 0px 1px; - width: calc(100% - 2px); -} -.mainGrid > div:nth-child(odd) { - background: var(--color-background); -} -.mainGrid > div:nth-child(even) { - background: var(--color-background-darker); -} -.selectionGrid { - grid-template-columns: repeat(auto-fit, minmax(6em, 1fr)); - text-align: center; -} -.mainGrid > div.canvasContainer { - padding: 0; - text-align: center; -} -#canvas { - display: block; - max-width:750px; - width: 100%; - height: auto; - margin: 0px auto; -} - -/*Card manipulation menu grid*/ -.selectionGrid > div { - font-size: 1.1em; - font-family: belerenbsc; - cursor: pointer; - padding: 0.1em; - border: 0.05em solid var(--color-primary); - background-color: var(--color-background); - -webkit-transition: 0.3333s; - transition: 0.3333s; -} -.selectionGrid > div:hover { - border: 0.15em solid var(--color-select); - padding: 0px; -} -.padded { - padding: 1em; -} -.paddedVertical { - padding: 1em 0px; -} -.cmm, .extras { - display: none; -} -.shown { - display: block; -} -.sampleCard { - width: 100%; -} - -/*Inputs and more*/ -/*dropdown*/ -.dropdown { - position: relative; - display: inline-block; - width: 100%; -} -.dropdown select { - padding-left: 0.25em; - width: inherit; - cursor: pointer; - -moz-appearance: none; - -webkit-appearance:none; - appearance: none; -} -.dropdown select option::hover { - /*nothing for now :)*/ -} -.dropdown::after { - content: "\25BC"; - font-size: 0.6em; - position: absolute; - pointer-events: none; - right: 0.6em; - top: 0.5em; -} -/*checkbox*/ -.checkbox { - height: 1em; - margin: 0.1em 0px 0.3em 0px; - position: relative; -} -.checkbox label { - display: inline-block; - width: calc(1.2em - 6px); - height: calc(1.2em - 6px); - border: 3px solid var(--color-select); - border-radius: 0.25em; - position: absolute; - top: 0px; - left: 0px; - cursor: pointer; - -webkit-transition: 0.5s; - transition: 0.5s; -} -.checkbox input:checked ~ label { - background: var(--color-select); - border: 3px solid var(--color-primary); -} -.checkbox > input { - opacity: 0; -} -.checkbox div { - white-space: pre; - position: relative; - top: -0.1em; - left: 1.3em; -} -/*other inputs*/ -input[type="text"], input[type="number"], textarea, input[type="file"] { - width: 100%; - padding-left: 0.25em; -} -/*color selector*/ -input[type="color"] { - padding: 0px; -} -.input { - background: var(--color-primary); - border-radius: 0.25em; - border: 1px solid var(--color-select); -} - -/*Hyperlinks*/ -a:link, a:visited { - color: #fff; -} -a:hover, a:active { - color: #999; -} -a { - -webkit-transition: 0.3333s; - transition: 0.3333s; -} - -/*Desktop*/ -@media only screen and (min-width: 750px) { - html { - background: url("images/background.png") no-repeat center center fixed; - -webkit-background-size: cover; - -moz-background-size: cover; - -o-background-size: cover; - background-size: cover; - } - * { - font-size: 20pt; /*Master font size*/ - } - header { - top: 0; - } - footer { - bottom: 0; - } - header, footer { - position: fixed; - width: 100%; - z-index: 1000; - } - footer > #alertMenu { - position: static; - } - #header { - max-height: 100px; - width: auto; - } - .mainGrid { - margin-top: 110px; - margin-bottom: 1.1em; - } -} -@media only screen and (min-width: 1175px) { - .mainGrid { - grid-template-columns: 750px auto; - } - .mainGrid > div:not(.canvasContainer):not(.cmmArea) { - grid-column: 1 / span 2; - } - /*.sampleGrid { - grid-column: 1 / span 2; - }*/ -} -@media only screen and (orientation: landscape) { - .sampleCard { - width: 32.8%; - } -} - - -/*Header and Footer*/ -#header { - width: auto; -} -header, .footer { - text-align: center; - background-color: black; - padding: 5px 0px; -} -footer * { - font-size: inherit; - padding: 0.25em -} -footer { - font-size: 0.8em; -} - -/*symbol grid*/ -.manaSymbol > img { - position: relative; - height: 1em; -} -.symbolGrid { - grid-template-columns: repeat(auto-fit, minmax(3.5em, 1fr)); - text-align: center; -} -.symbolGrid > div { - border: 0.1em solid var(--color-background); - border-radius: 1em; - background-color: var(--color-primary); -} - -/*Sitewide text (bottom of the page)*/ -.miniTitle { - font-family: belerenbsc; - text-align: center; - font-size: 1.2em; - padding-bottom: 0.125em; -} -.paragraph { - padding-bottom: 0.25em; - text-indent: 2em; -} -/*Donation buttons!*/ -.donateGrid { - grid-template-columns: repeat(auto-fit, minmax(13em, 1fr)); -} -.donateGrid.grid > div { - font-size: 1.7em; -} -.donateGrid > div > img { - position: relative; - top: 0.25em; - left: 0.5em; - height: 1.7em; -} - - - -#alertMenu { - position: fixed; - bottom: 0; -} -.alert { - opacity: 1; - padding: 0.25em; - cursor: pointer; - transition: 0.25s; - border: 0px solid var(--color-select); -} -.alert:hover { - border-width: 0.15em; - padding: 0.1em; -} -.alert.info {background-color: var(--color-primary);} -.alert.conflict {background-color: #b37d07;} -.alert.warning {background-color: #3b0000;} - -.hidden { - display: none; -} \ No newline at end of file diff --git a/old/data/symbol/symbol.js b/old/data/symbol/symbol.js deleted file mode 100644 index 96dfd5d9..00000000 --- a/old/data/symbol/symbol.js +++ /dev/null @@ -1,225 +0,0 @@ -//============================================// -// Card Conjurer, by Kyle Burton // -//============================================// -canvas = document.getElementById("canvas") -symbol = canvas.getContext("2d") -maskCanvas = document.createElement("canvas") -maskContext = maskCanvas.getContext("2d") -transparentCanvas = document.createElement("canvas") -transparentContext = transparentCanvas.getContext("2d") -cropCanvas = document.createElement("canvas") -cropContext = cropCanvas.getContext("2d") -gradientCanvas = document.createElement("canvas") -gradientCanvas.width = 750 -gradientCanvas.height = 750 -gradientContext = gradientCanvas.getContext("2d") -finalCanvas = document.createElement("canvas") -finalContext = finalCanvas.getContext("2d") - -symbol.fillStyle = "black" - -var imgOriginalSymbol = new Image() -var imgTransparentSymbol = new Image() -var imgCroppedSymbol = new Image() -var imgTempFinalSymbol = new Image() -var imgFinalSymbol = new Image() - -imgOriginalSymbol.crossOrigin = "anonymous" -imgTransparentSymbol.crossOrigin = "anonymous" -imgCroppedSymbol.crossOrigin = "anonymous" -imgTempFinalSymbol.crossOrigin = "anonymous" -imgFinalSymbol.crossOrigin = "anonymous" - -imgOriginalSymbol.onload = function() { - whiteToTransparent(imgOriginalSymbol, imgTransparentSymbol) -} -imgTransparentSymbol.onload = function() { - autocrop(imgTransparentSymbol, imgCroppedSymbol) -} -imgCroppedSymbol.onload = function() { - createSymbol() -} -imgTempFinalSymbol.onload = function() { - autocrop(this, imgFinalSymbol) -} -imgFinalSymbol.onload = function() { - finalCanvas.width = imgFinalSymbol.width - finalCanvas.height = imgFinalSymbol.height - finalContext.clearRect(0, 0, finalCanvas.width, finalCanvas.height) - finalContext.drawImage(imgFinalSymbol, 0, 0) -} - -function createSymbol() { - if (imgCroppedSymbol.src != "") { - symbol.clearRect(0, 0, canvas.width, canvas.height) - maskContext.globalCompositeOperation = "source-over" - maskCanvas.width = imgCroppedSymbol.width - maskCanvas.height = imgCroppedSymbol.height - maskContext.clearRect(0, 0, maskCanvas.width, maskCanvas.height) - maskContext.drawImage(imgCroppedSymbol, 0, 0) - maskContext.globalCompositeOperation = "source-in" - maskContext.fillStyle = document.getElementById("inputBorderColor").value - maskContext.fillRect(0, 0, maskCanvas.width, maskCanvas.height) - var symbolSize = 500 - if (imgCroppedSymbol.width > imgCroppedSymbol.height) { - width = symbolSize - height = imgCroppedSymbol.height * symbolSize / imgCroppedSymbol.width - } else { - width = imgCroppedSymbol.width * symbolSize / imgCroppedSymbol.height - height = symbolSize - } - var borderThickness = parseInt(document.getElementById("inputBorderThickness").value) - var left = 375 - borderThickness - var right = 375 + borderThickness - var top = 375 - borderThickness - var bottom = 375 + borderThickness - for (var x = left; x <= right; x++) { - for (var y = top; y <= bottom; y++) { - symbol.drawImage(maskCanvas, x - width / 2, y - height / 2, width, height) - } - } - gradientContext.globalCompositeOperation = "source-over" - gradientContext.clearRect(0, 0, gradientCanvas.width, gradientCanvas.height) - gradientContext.drawImage(imgCroppedSymbol, 375 - width / 2, 375 - height / 2, width, height) - gradientContext.globalCompositeOperation = "source-in" - var angle = parseInt(document.getElementById("inputGradientAngle").value) * Math.PI / 180 - while (angle <= 0) { - angle += Math.PI * 2 - } - while (angle > Math.PI * 2) { - angle -= Math.PI * 2 - } - var outerColor = document.getElementById("inputOuterColor").value - var innerColor = document.getElementById("inputInnerColor").value - if (document.getElementById("inputRarity").value != "custom") { - outerColor = document.getElementById("inputRarity").value.split(",")[0] - innerColor = document.getElementById("inputRarity").value.split(",")[1] - } - var gradientHorizontal = 0 - var gradientVertical = 0 - if (angle > 7 * Math.PI / 4 || angle <= Math.PI / 4) { - gradientHorizontal = 250 - gradientVertical = Math.sin(angle) * 250 / Math.cos(angle) - } else if (angle > 5 * Math.PI / 4) { - gradientHorizontal = Math.sin(3 * Math.PI / 2 - angle) * -250 / Math.sin(angle - Math.PI) - gradientVertical = -250 - } else if (angle > 3 * Math.PI / 4) { - gradientHorizontal = -250 - gradientVertical = Math.sin(Math.PI - angle) * 250 / Math.cos(Math.PI - angle) - } else { - gradientHorizontal = Math.cos(angle) * 250 / Math.sin(angle) - gradientVertical = 250 - } - var gradient = gradientContext.createLinearGradient(375 - gradientHorizontal, 375 - gradientVertical, 375 + gradientHorizontal, 375 + gradientVertical) - gradient.addColorStop(0, outerColor) - gradient.addColorStop(0.5, innerColor) - gradient.addColorStop(1, outerColor) - gradientContext.fillStyle = gradient - - gradientContext.fillRect(125, 125, 500, 500) - symbol.drawImage(gradientCanvas, 0, 0) - - imgTempFinalSymbol.src = canvas.toDataURL() - } -} - - - -//Function that auto... makes the image's white pixels transparent -function whiteToTransparent(source, destination) { - //Create image, size canvas, draw image - var imgTempTarget = new Image() - imgTempTarget.crossOrigin = "anonymous" - imgTempTarget.src = source.src - imgTempTarget.onload = function() { - if (imgTempTarget.width > 0 && imgTempTarget.height > 0) { - transparentCanvas.width = imgTempTarget.width - transparentCanvas.height = imgTempTarget.height - transparentContext.drawImage(imgTempTarget, 0, 0) - //declare variables - var width = transparentCanvas.width - var height = transparentCanvas.height - var imageData = transparentContext.getImageData(0, 0, transparentCanvas.width, transparentCanvas.height) - var x, y, index - //Go through every pixel and - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - index = (y * width + x) * 4 - if (imageData.data[index] >= 240 && imageData.data[index + 1] >= 240 && imageData.data[index + 2] >= 240) { - imageData.data[index + 3] = 0 - } - } - } - transparentContext.clearRect(0, 0, width, height) - transparentContext.putImageData(imageData, 0, 0) - destination.src = transparentCanvas.toDataURL() - } - } -} - - -//Function that autocrops the image -function autocrop(source, destination) { - //Create image, size canvas, draw image - var imgTempTarget = new Image() - imgTempTarget.crossOrigin = "anonymous" - imgTempTarget.src = source.src - imgTempTarget.onload = function() { - if (imgTempTarget.width > 0 && imgTempTarget.height > 0) { - cropCanvas.width = imgTempTarget.width - cropCanvas.height = imgTempTarget.height - cropContext.drawImage(imgTempTarget, 0, 0) - //declare variables - var width = cropCanvas.width - var height = cropCanvas.height - var pix = {x:[], y:[]} - var imageData = cropContext.getImageData(0, 0, cropCanvas.width, cropCanvas.height) - var x, y, index - if (imageData.data.length > 4) { - //Go through every pixel and - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - //(y * width + x) * 4 + 3 calculates the index at which the alpha value of the pixel at x, y is given - index = (y * width + x) * 4 + 3 - if (imageData.data[index] > 0) { - //pix is the image object that stores two arrays of x and y coordinates. These stored coordinates are all the visible pixels - pix.x.push(x) - pix.y.push(y) - } - } - } - //sorts the arrays numerically - pix.x.sort(function(a,b){return a-b}) - pix.y.sort(function(a,b){return a-b}) - var n = pix.x.length - 1 - //Finds the difference between the leftmost and rightmost visible pixels, and the topmost and bottommost pixels, cuts out a section of the canvas - width = pix.x[n] - pix.x[0] - height = pix.y[n] - pix.y[0] - var cropped = cropContext.getImageData(pix.x[0], pix.y[0], width + 1, height + 1) - //Resizes the canvas and draws cropped image - cropCanvas.width = width + 1 - cropCanvas.height = height + 1 - cropContext.putImageData(cropped, 0, 0) - //Saves the newly cropped image to the given image - destination.src = cropCanvas.toDataURL() - } - } - } -} - - - -//Loads images via URL -function imageURL(input, targetImage, processes) { - targetImage.cropStatus = processes - targetImage.src = "https://cors-anywhere.herokuapp.com/" + input -} - -//Downloads the image! -function downloadCardImage(linkElement) { - var symbolImageData = finalCanvas.toDataURL() - if (symbolImageData == undefined) { - alert("Sorry, it seems that you cannot download your symbol. Please try using a different browser/device.") - } - linkElement.href = symbolImageData -} \ No newline at end of file diff --git a/old/index.html b/old/index.html deleted file mode 100644 index ab16f6d2..00000000 --- a/old/index.html +++ /dev/null @@ -1,472 +0,0 @@ - - - - Card Conjurer - - - - - - - - - - - - - - - - - -
-
-
- - - -
- -
- -
-
-
-
Frame
-
Text
-
Info
-
Art
-
Set Symbol
-
Watermark
-
Advanced
-
Download
- - -
-
-
- Border - - - -

- Frame - - - -
-
- -
- - - -

-
- -
- - - -
-
- -
- - - -

-
- -
- - - -
-
- -
- - - -

-
- -
- - - -
-
- -
- - - -
-
-
- -
-
- -
-
- -
-
- -
-
- Frame Opacity - -
- Title/Type Opacity - -
- Rules Box Opacity - -
- Pinline Opacity - -

- Title Color Outline -
- -
- Type Color Outline -
- -
- Rules Color Outline -
- -
- Power/Toughness Color -

- Border Color -
-
- Name - -
- Mana Cost - -
- Type - -
- -
- - - - -

- Rules Text -
- -
- Rules Text Font Size - -
- Pixels Between Paragraphs - -
- Shift All Text Down - -
-
- Collector's Number - -
- Rarity - -
- Set Abbreviation - -
- Language - -
- Artist Credit - -
- - -
-
- Upload an Image - - - -
- Card Name Result: - -
- Image Zoom - -
- Image X - -
- Image Y - -
- -
-
-
- -
- Set Code - - Rarity - - Or Upload an Image - - -
- Scale Set Symbol - -
-
-
- -
- Watermark Opacity - -
- Set Code - - Or Upload an Image - - -
- Watermark Color - - - -
- -
- - - -
-
- Download

- Remember to properly credit the artist (under 'Info') before downloading! -
-
- Planeswalker Ability Line Height - - - - - Planeswalker Ability Values - - - - -
-
- Hand Size Modifier - - Starting Life Modifier - -
-
-
-
-
-
About
-
Tutorial
-
Mana Symbols
-
Other Codes
-
Set Codes
-
-
-
-
- Welcome to Card Conjurer! -
-
- Card Conjurer is a program that creates custom Magic: The Gathering cards. There are already plenty of Magic card makers, but what sets Card Conjurer apart from the rest is its live-edit capabilities. Users can immediately see the effects of any change they make, which makes card customization easier and more enjoyable. Additionally, Card Conjurer offers more borders than any other website, including full art lands, planechase cards, miracle and nyx borders, and so much more. -
-
- About Me -
-
- Hi! My name is Kyle Burton and I am currently a high school student. I used to play Pokemon, but when a friend introduced me to Magic in 2013 I sold my pocket monsters and bought an M14 Intro Pack. Ever since that day Magic has been my all time favorite game. In addition to playing games, I've always loved technology. During the 2017-18 school year I tought myself how to code Javascript, and a little bit of HTML and CSS. The following summer I created Kyle's Card Imager. (KCI) It was pretty simple but I soon began to add more border images like Miracle or Nyx. After a few months I decided to share my creation, so I renamed it Card Conjurer and uploaded it to Github, and then in April of 2019 I bought the domain cardconjurer.com. -
-
-
- Each of the following codes must be sandwhiched between curly brackets (e.g., '{t}') -
- -
-
-
- • {line} → Skips to the next line
- • {bar} → Just like line, except adds the bar that usually seperates flavor text
- • {lineNoSpace} → Just like line, except stays closer to the previous line
- • {i} → Text is italicized
- • {/i} → Text returns to normal
- • {left} → Text aligns to the left
- • {center} → Text aligns to the center
- • {right} → Text aligns to the right
- • {upX} → Shifts the following text X pixels up
- • {downX} → Shifts the following text X pixels down
- • {leftX} → Shifts the following text X pixels left
- • {rightX} → Shifts the following text X pixels right
- • {fontsizeX} → Changes the font size to X pixels
-
-
- Every set in Magic: The Gathering has an associated 2-3 letter code. For example, Homelands is HM and Innistrad is ISD. This program uses the codes from The Gatherer, the official Magic card database. A handy list of all sets and their codes can be found on Wikipedia. -
-
- Card Conjurer has gone under some major changes since the making of this video, but it can still help to give a general idea of how to use the program: -

- -
-
-
-
-
- Check out some samples -
-
- - - -
-
- -
-
-
- How You Can Help -
-
- I hope that you found Card Conjurer useful! If you did, you can help me out tremendously by making a small donation or using a referral link: -
-
-
PayPal
-
PucaTrade
-
@ImKyle4815
-
Massdrop
-
-
-
-
- - - - - - - - - - - - - - \ No newline at end of file diff --git a/old/life.html b/old/life.html deleted file mode 100644 index c92f4d78..00000000 --- a/old/life.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - Life Counter - - - - - - - - - - - - - - - - - - - - - - -
-
- Number of Players:
-
- Starting Life Total:
-
-
- Enable Wake Lock

- For an optimal experience, save this website to your home screen and open it from there.

Check out my other website, Card Conjurer, to easily create custom Magic cards!
-
-
- -
- - -
-
- - - - - diff --git a/old/symbol.html b/old/symbol.html deleted file mode 100644 index e7f80425..00000000 --- a/old/symbol.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - Card Conjurer - - - - - - - - - - - - - - - - - -
-
-
- - - -
- -
- -
-
-
-
Custom Set Symbol
-
-
-
- Image - -

- Border Thickness - - Border Color -

- Rarity - - - - Gradient Angle - -

- Custom Gradient Colors
- Outer
- Inner

- Download -
-
-
-
- -
-
-
- How You Can Help -
-
- I hope that you found Card Conjurer useful! If you did, you can help me out tremendously by making a small donation or using a referral link: -
-
-
PayPal
-
PucaTrade
-
@ImKyle4815
-
Massdrop
-
-
-
-
- - - - - - - - - - - - - - \ No newline at end of file diff --git a/phyrexian.html b/phyrexian.html index 47a4f415..632ae041 100644 --- a/phyrexian.html +++ b/phyrexian.html @@ -1,6 +1,7 @@ + @@ -9,11 +10,9 @@ - CC - Phyrexian -
Phyrexian "Translator" diff --git a/setSymbol.html b/setSymbol.html deleted file mode 100644 index 41148a4d..00000000 --- a/setSymbol.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - CC - Set Symbol -
-
- Set Symbol Maker -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Enter a set code and select a rarity: - - - Or upload your own image/svg: - -
-
-
- Download -
-
-
-
- -
-
Have Any Questions?
-
- If you have any questions please don't hesitate to email me at . Even if you made a cool card and want to share, I'd love to see it! -
-
-
- - -