diff --git a/creator/index.php b/creator/index.php
index 6072b050..c64e5a77 100644
--- a/creator/index.php
+++ b/creator/index.php
@@ -44,12 +44,19 @@ include('../globalHTML/header-1.php');
diff --git a/img/frames/m15/fang/a.png b/img/frames/m15/fang/a.png
new file mode 100644
index 00000000..8e911a43
Binary files /dev/null and b/img/frames/m15/fang/a.png differ
diff --git a/img/frames/m15/fang/aThumb.png b/img/frames/m15/fang/aThumb.png
new file mode 100644
index 00000000..943194d6
Binary files /dev/null and b/img/frames/m15/fang/aThumb.png differ
diff --git a/img/frames/m15/fang/b.png b/img/frames/m15/fang/b.png
new file mode 100644
index 00000000..53863b99
Binary files /dev/null and b/img/frames/m15/fang/b.png differ
diff --git a/img/frames/m15/fang/bThumb.png b/img/frames/m15/fang/bThumb.png
new file mode 100644
index 00000000..8ce74617
Binary files /dev/null and b/img/frames/m15/fang/bThumb.png differ
diff --git a/img/frames/m15/fang/frame.svg b/img/frames/m15/fang/frame.svg
new file mode 100644
index 00000000..f774aca1
--- /dev/null
+++ b/img/frames/m15/fang/frame.svg
@@ -0,0 +1,5 @@
+
+
+
diff --git a/img/frames/m15/fang/frameThumb.png b/img/frames/m15/fang/frameThumb.png
new file mode 100644
index 00000000..9cfe4df9
Binary files /dev/null and b/img/frames/m15/fang/frameThumb.png differ
diff --git a/img/frames/m15/fang/g.png b/img/frames/m15/fang/g.png
new file mode 100644
index 00000000..43fa5aec
Binary files /dev/null and b/img/frames/m15/fang/g.png differ
diff --git a/img/frames/m15/fang/gThumb.png b/img/frames/m15/fang/gThumb.png
new file mode 100644
index 00000000..88e814f0
Binary files /dev/null and b/img/frames/m15/fang/gThumb.png differ
diff --git a/img/frames/m15/fang/l.png b/img/frames/m15/fang/l.png
new file mode 100644
index 00000000..b9443cba
Binary files /dev/null and b/img/frames/m15/fang/l.png differ
diff --git a/img/frames/m15/fang/lThumb.png b/img/frames/m15/fang/lThumb.png
new file mode 100644
index 00000000..9aa6cabc
Binary files /dev/null and b/img/frames/m15/fang/lThumb.png differ
diff --git a/img/frames/m15/fang/m.png b/img/frames/m15/fang/m.png
new file mode 100644
index 00000000..01dbc9bc
Binary files /dev/null and b/img/frames/m15/fang/m.png differ
diff --git a/img/frames/m15/fang/mThumb.png b/img/frames/m15/fang/mThumb.png
new file mode 100644
index 00000000..5173b03b
Binary files /dev/null and b/img/frames/m15/fang/mThumb.png differ
diff --git a/img/frames/m15/fang/pt/a.png b/img/frames/m15/fang/pt/a.png
new file mode 100644
index 00000000..20e5bb1a
Binary files /dev/null and b/img/frames/m15/fang/pt/a.png differ
diff --git a/img/frames/m15/fang/pt/aThumb.png b/img/frames/m15/fang/pt/aThumb.png
new file mode 100644
index 00000000..32d6e0df
Binary files /dev/null and b/img/frames/m15/fang/pt/aThumb.png differ
diff --git a/img/frames/m15/fang/pt/b.png b/img/frames/m15/fang/pt/b.png
new file mode 100644
index 00000000..2de6a56d
Binary files /dev/null and b/img/frames/m15/fang/pt/b.png differ
diff --git a/img/frames/m15/fang/pt/bThumb.png b/img/frames/m15/fang/pt/bThumb.png
new file mode 100644
index 00000000..9dd5f34f
Binary files /dev/null and b/img/frames/m15/fang/pt/bThumb.png differ
diff --git a/img/frames/m15/fang/pt/g.png b/img/frames/m15/fang/pt/g.png
new file mode 100644
index 00000000..0173a2c9
Binary files /dev/null and b/img/frames/m15/fang/pt/g.png differ
diff --git a/img/frames/m15/fang/pt/gThumb.png b/img/frames/m15/fang/pt/gThumb.png
new file mode 100644
index 00000000..bada5268
Binary files /dev/null and b/img/frames/m15/fang/pt/gThumb.png differ
diff --git a/img/frames/m15/fang/pt/l.png b/img/frames/m15/fang/pt/l.png
new file mode 100644
index 00000000..57d4879f
Binary files /dev/null and b/img/frames/m15/fang/pt/l.png differ
diff --git a/img/frames/m15/fang/pt/lThumb.png b/img/frames/m15/fang/pt/lThumb.png
new file mode 100644
index 00000000..e21b448c
Binary files /dev/null and b/img/frames/m15/fang/pt/lThumb.png differ
diff --git a/img/frames/m15/fang/pt/m.png b/img/frames/m15/fang/pt/m.png
new file mode 100644
index 00000000..b23cdc7b
Binary files /dev/null and b/img/frames/m15/fang/pt/m.png differ
diff --git a/img/frames/m15/fang/pt/mThumb.png b/img/frames/m15/fang/pt/mThumb.png
new file mode 100644
index 00000000..ca0d5adf
Binary files /dev/null and b/img/frames/m15/fang/pt/mThumb.png differ
diff --git a/img/frames/m15/fang/pt/r.png b/img/frames/m15/fang/pt/r.png
new file mode 100644
index 00000000..535af1d9
Binary files /dev/null and b/img/frames/m15/fang/pt/r.png differ
diff --git a/img/frames/m15/fang/pt/rThumb.png b/img/frames/m15/fang/pt/rThumb.png
new file mode 100644
index 00000000..9ec27a4f
Binary files /dev/null and b/img/frames/m15/fang/pt/rThumb.png differ
diff --git a/img/frames/m15/fang/pt/u.png b/img/frames/m15/fang/pt/u.png
new file mode 100644
index 00000000..43c18e24
Binary files /dev/null and b/img/frames/m15/fang/pt/u.png differ
diff --git a/img/frames/m15/fang/pt/uThumb.png b/img/frames/m15/fang/pt/uThumb.png
new file mode 100644
index 00000000..13794a78
Binary files /dev/null and b/img/frames/m15/fang/pt/uThumb.png differ
diff --git a/img/frames/m15/fang/pt/w.png b/img/frames/m15/fang/pt/w.png
new file mode 100644
index 00000000..d4b3f053
Binary files /dev/null and b/img/frames/m15/fang/pt/w.png differ
diff --git a/img/frames/m15/fang/pt/wThumb.png b/img/frames/m15/fang/pt/wThumb.png
new file mode 100644
index 00000000..146e6a1e
Binary files /dev/null and b/img/frames/m15/fang/pt/wThumb.png differ
diff --git a/img/frames/m15/fang/r.png b/img/frames/m15/fang/r.png
new file mode 100644
index 00000000..f4f620b9
Binary files /dev/null and b/img/frames/m15/fang/r.png differ
diff --git a/img/frames/m15/fang/rThumb.png b/img/frames/m15/fang/rThumb.png
new file mode 100644
index 00000000..9b135978
Binary files /dev/null and b/img/frames/m15/fang/rThumb.png differ
diff --git a/img/frames/m15/fang/rules.svg b/img/frames/m15/fang/rules.svg
new file mode 100644
index 00000000..d1035e7d
--- /dev/null
+++ b/img/frames/m15/fang/rules.svg
@@ -0,0 +1,5 @@
+
+
+
diff --git a/img/frames/m15/fang/rulesThumb.png b/img/frames/m15/fang/rulesThumb.png
new file mode 100644
index 00000000..ebe80ce0
Binary files /dev/null and b/img/frames/m15/fang/rulesThumb.png differ
diff --git a/img/frames/m15/fang/title.svg b/img/frames/m15/fang/title.svg
new file mode 100644
index 00000000..f99872ee
--- /dev/null
+++ b/img/frames/m15/fang/title.svg
@@ -0,0 +1,7 @@
+
+
+
diff --git a/img/frames/m15/fang/titleThumb.png b/img/frames/m15/fang/titleThumb.png
new file mode 100644
index 00000000..e8e5d614
Binary files /dev/null and b/img/frames/m15/fang/titleThumb.png differ
diff --git a/img/frames/m15/fang/type.svg b/img/frames/m15/fang/type.svg
new file mode 100644
index 00000000..14f9817e
--- /dev/null
+++ b/img/frames/m15/fang/type.svg
@@ -0,0 +1,5 @@
+
+
+
diff --git a/img/frames/m15/fang/typeThumb.png b/img/frames/m15/fang/typeThumb.png
new file mode 100644
index 00000000..02fa0ab8
Binary files /dev/null and b/img/frames/m15/fang/typeThumb.png differ
diff --git a/img/frames/m15/fang/u.png b/img/frames/m15/fang/u.png
new file mode 100644
index 00000000..905d1f8a
Binary files /dev/null and b/img/frames/m15/fang/u.png differ
diff --git a/img/frames/m15/fang/uThumb.png b/img/frames/m15/fang/uThumb.png
new file mode 100644
index 00000000..f418dced
Binary files /dev/null and b/img/frames/m15/fang/uThumb.png differ
diff --git a/img/frames/m15/fang/w.png b/img/frames/m15/fang/w.png
new file mode 100644
index 00000000..582a1638
Binary files /dev/null and b/img/frames/m15/fang/w.png differ
diff --git a/img/frames/m15/fang/wThumb.png b/img/frames/m15/fang/wThumb.png
new file mode 100644
index 00000000..7bc34335
Binary files /dev/null and b/img/frames/m15/fang/wThumb.png differ
diff --git a/js/creator-23.js b/js/creator-23.js
index eb23db18..d2e1226a 100644
--- a/js/creator-23.js
+++ b/js/creator-23.js
@@ -346,10 +346,10 @@ function drawFrames() {
frameContext.putImageData(existingData, 0, 0);
} else {
frameMaskingContext.drawImage(item.image, frameX, frameY, frameWidth, frameHeight);
+ if (item.colorOverlayCheck) {frameMaskingContext.globalCompositeOperation = 'source-in'; frameMaskingContext.fillStyle = item.colorOverlay; frameMaskingContext.fillRect(0, 0, frameMaskingCanvas.width, frameMaskingCanvas.height);}
if (item.erase) {frameContext.globalCompositeOperation = 'destination-out';}
frameContext.drawImage(frameMaskingCanvas, 0, 0, frameCanvas.width, frameCanvas.height);
}
-
}
});
if (!haveDrawnPrePTCanvas && drawTextBetweenFrames) {
@@ -603,6 +603,10 @@ function frameElementClicked(event) {
document.querySelector('#frame-editor-erase').onchange = (event) => {selectedFrame.erase = event.target.checked; drawFrames();}
document.querySelector('#frame-editor-alpha').checked = selectedFrame.preserveAlpha || false;
document.querySelector('#frame-editor-alpha').onchange = (event) => {selectedFrame.preserveAlpha = event.target.checked; drawFrames();}
+ document.querySelector('#frame-editor-color-overlay-check').checked = selectedFrame.colorOverlayCheck || false;
+ document.querySelector('#frame-editor-color-overlay-check').onchange = (event) => {selectedFrame.colorOverlayCheck = event.target.checked; drawFrames();}
+ document.querySelector('#frame-editor-color-overlay').value = selectedFrame.colorOverlay || false;
+ document.querySelector('#frame-editor-color-overlay').onchange = (event) => {selectedFrame.colorOverlay = event.target.value; drawFrames();}
// Removing masks
const selectMaskElement = document.querySelector('#frame-editor-masks');
selectMaskElement.innerHTML = null;
diff --git a/js/frames/packFang.js b/js/frames/packFang.js
new file mode 100644
index 00000000..68e25943
--- /dev/null
+++ b/js/frames/packFang.js
@@ -0,0 +1,54 @@
+//Create objects for common properties across available frames
+var masks = [{src:'/img/frames/m15/fang/frame.svg', name:'Frame'}, {src:'/img/frames/m15/fang/title.svg', name:'Title'}, {src:'/img/frames/m15/fang/type.svg', name:'Type'}, {src:'/img/frames/m15/fang/rules.svg', name:'Rules'}];
+var bounds = {x:0.76, y:0.8762, width:0.204, height:0.0781};
+//defines available frames
+availableFrames = [
+ {name:'White Frame', src:'/img/frames/m15/fang/w.png', masks:masks},
+ {name:'Blue Frame', src:'/img/frames/m15/fang/u.png', masks:masks},
+ {name:'Black Frame', src:'/img/frames/m15/fang/b.png', masks:masks},
+ {name:'Red Frame', src:'/img/frames/m15/fang/r.png', masks:masks},
+ {name:'Green Frame', src:'/img/frames/m15/fang/g.png', masks:masks},
+ {name:'Multicolored Frame', src:'/img/frames/m15/fang/m.png', masks:masks},
+ {name:'Artifact Frame', src:'/img/frames/m15/fang/a.png', masks:masks},
+ {name:'Land Frame', src:'/img/frames/m15/fang/l.png', masks:masks},
+ {name:'White Power/Toughness', src:'/img/frames/m15/fang/pt/w.png', bounds:bounds},
+ {name:'Blue Power/Toughness', src:'/img/frames/m15/fang/pt/u.png', bounds:bounds},
+ {name:'Black Power/Toughness', src:'/img/frames/m15/fang/pt/b.png', bounds:bounds},
+ {name:'Red Power/Toughness', src:'/img/frames/m15/fang/pt/r.png', bounds:bounds},
+ {name:'Green Power/Toughness', src:'/img/frames/m15/fang/pt/g.png', bounds:bounds},
+ {name:'Multicolored Power/Toughness', src:'/img/frames/m15/fang/pt/m.png', bounds:bounds},
+ {name:'Artifact Power/Toughness', src:'/img/frames/m15/fang/pt/a.png', bounds:bounds},
+ {name:'Land Power/Toughness', src:'/img/frames/m15/fang/pt/l.png', bounds:bounds}
+];
+//disables/enables the "Load Frame Version" button
+document.querySelector('#loadFrameVersion').disabled = false;
+//defines process for loading this version, if applicable
+document.querySelector('#loadFrameVersion').onclick = async function() {
+ //resets things so that every frame doesn't have to
+ await resetCardIrregularities();
+ //sets card version
+ card.version = 'm15Fang';
+ //art bounds
+ card.artBounds = {x:0.078, y:0.1105, width:0.844, height:0.4439};
+ autoFitArt();
+ //set symbol bounds
+ card.setSymbolBounds = {x:0.92, y:0.59, width:0.12, height:0.04, vertical:'center', horizontal: 'right'};
+ resetSetSymbol();
+ //watermark bounds
+ card.watermarkBounds = {x:0.5, y:0.7762, width:0.75, height:0.2305};
+ resetWatermark();
+ //text
+ loadTextOptions({
+ mana: {name:'Mana Cost', text:'', y:0.0591, width:0.9234, height:71/2100, oneLine:true, size:71/1638, align:'right', shadowX:-0.001, shadowY:0.0029, manaCost:true, manaSpacing:0},
+ title: {name:'Title', text:'', x:0.0867, y:0.05, width:0.8267, height:0.0543, oneLine:true, font:'belerenb', size:0.0381},
+ type: {name:'Type', text:'', x:0.0867, y:0.5653, width:0.8267, height:0.0543, oneLine:true, font:'belerenb', size:0.0324},
+ rules: {name:'Rules Text', text:'', x:0.096, y:0.6303, width:0.808, height:0.2875, size:0.0362},
+ pt: {name:'Power/Toughness', text:'', x:0.7928, y:0.902, width:0.1367, height:0.0372, size:0.0372, font:'belerenbsc', oneLine:true, align:'center'}
+ });
+}
+//loads available frames
+loadFramePack();
+//Only for the main version as the webpage loads:
+if (!card.text) {
+ document.querySelector('#loadFrameVersion').click();
+}
\ No newline at end of file