diff --git a/creator/index.html b/creator/index.html index f82b98aa..f3d1c15e 100644 --- a/creator/index.html +++ b/creator/index.html @@ -574,7 +574,7 @@ -
+
@@ -599,6 +599,25 @@ + +
+
Serial Number (leave both blank to hide)
+
+ + +
+ +
Placement (X, Y, Scale)
+
+ + + +
+
+ +
+
+
Toggle between star (seen on foils) and dot (seen on regular cards)
diff --git a/css/style-9.css b/css/style-9.css index 980c7f4e..843df8e7 100644 --- a/css/style-9.css +++ b/css/style-9.css @@ -3,6 +3,10 @@ font-family: gothammedium; src: url("../fonts/gotham-medium.ttf") format('truetype'); } +@font-face { + font-family: gothambold; + src: url("../fonts/gothambold.otf") format('opentype'); +} @font-face { font-family: belerenb; src: url("../fonts/beleren-b.ttf") format('truetype'); diff --git a/fonts/gothambold.otf b/fonts/gothambold.otf new file mode 100644 index 00000000..649fde3f Binary files /dev/null and b/fonts/gothambold.otf differ diff --git a/img/frames/serial.png b/img/frames/serial.png new file mode 100644 index 00000000..2da33854 Binary files /dev/null and b/img/frames/serial.png differ diff --git a/js/creator-23.js b/js/creator-23.js index 5d77b4f9..43a6a25e 100644 --- a/js/creator-23.js +++ b/js/creator-23.js @@ -54,6 +54,7 @@ const blank = new Image(); blank.crossOrigin = 'anonymous'; blank.src = fixUri(' const right = new Image(); right.crossOrigin = 'anonymous'; right.src = fixUri('/img/frames/maskRightHalf.png'); const middle = new Image(); middle.crossOrigin = 'anonymous'; middle.src = fixUri('/img/frames/maskMiddleThird.png'); const corner = new Image(); corner.crossOrigin = 'anonymous'; corner.src = fixUri('/img/frames/cornerCutout.png'); +const serial = new Image(); serial.crossOrigin = 'anonymous'; serial.src = fixUri('/img/frames/serial.png'); //art art = new Image(); art.crossOrigin = 'anonymous'; art.src = blank.src; art.onerror = function() {if (!this.src.includes('/img/blank.png')) {this.src = fixUri('/img/blank.png');}} @@ -4461,6 +4462,28 @@ async function bottomInfoEdited() { drawCard(); } +async function serialInfoEdited() { + card.serialNumber = document.querySelector('#serial-number').value; + card.serialTotal = document.querySelector('#serial-total').value; + card.serialX = document.querySelector('#serial-x').value; + card.serialY = document.querySelector('#serial-y').value; + card.serialScale = document.querySelector('#serial-scale').value; + + drawCard(); +} + +async function resetSerial() { + card.serialX = scaleX(172/2010); + card.serialY = scaleY(1383/2814); + card.serialScale = 1.0; + + document.querySelector('#serial-x').value = card.serialX; + document.querySelector('#serial-y').value = card.serialY; + document.querySelector('#serial-scale').value = card.serialScale; + + drawCard(); +} + function artistEdited(value) { document.querySelector('#art-artist').value = value; document.querySelector('#info-artist').value = value; @@ -4564,6 +4587,45 @@ function drawCard() { cardContext.drawImage(textCanvas, 0, 0, cardCanvas.width, cardCanvas.height); // set symbol cardContext.drawImage(setSymbol, scaleX(card.setSymbolX), scaleY(card.setSymbolY), setSymbol.width * card.setSymbolZoom, setSymbol.height * card.setSymbolZoom) + // serial + if (card.serialNumber || card.serialTotal) { + var x = parseInt(card.serialX) || 172; + var y = parseInt(card.serialY) || 1383; + var scale = parseFloat(card.serialScale) || 1.0; + + cardContext.drawImage(serial, scaleX(x/2010), scaleY(y/2814), scaleX(464/2010) * scale, scaleY(143/2814) * scale); + + var number = { + name:"Number", + text: '{kerning3}' + card.serialNumber || '', + x: (x+(30 * scale))/2010, + y: (y+(52 * scale))/2814, + width: (190 * scale)/2010, + height: (55 * scale)/2814, + oneLine: true, + font: 'gothambold', + color: 'white', + size: (55 * scale)/2010, + align: 'center' + }; + + var total = { + name:"Number", + text: '{kerning3}' + card.serialTotal || '', + x: (x+(251 * scale))/2010, + y: (y+(52 * scale))/2814, + width: (190 * scale)/2010, + height: (55 * scale)/2814, + oneLine: true, + font: 'gothambold', + color: 'white', + size: (55 * scale)/2010, + align: 'center' + }; + + writeText(number, cardContext); + writeText(total, cardContext); + } // bottom info if (card.bottomInfoTranslate) { cardContext.save(); @@ -5032,6 +5094,13 @@ async function loadCard(selectedCardKey) { document.querySelector('#watermark-opacity').value = card.watermarkOpacity * 100; document.getElementById("rounded-corners").checked = !card.noCorners; uploadWatermark(card.watermarkSource); + document.querySelector('#serial-number').value = card.serialNumber; + document.querySelector('#serial-total').value = card.serialTotal; + document.querySelector('#serial-x').value = card.serialX; + document.querySelector('#serial-y').value = card.serialY; + document.querySelector('#serial-scale').value = card.serialScale; + serialInfoEdited(); + card.frames.reverse(); await card.frames.forEach(item => addFrame([], item)); card.frames.reverse();