storybook
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.8 MiB |
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.8 MiB |
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 2.0 MiB |
BIN
data/images/storybook/storybookPTB.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
data/images/storybook/storybookPTC.png
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
data/images/storybook/storybookPTG.png
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
data/images/storybook/storybookPTR.png
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
data/images/storybook/storybookPTU.png
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
data/images/storybook/storybookPTW.png
Normal file
After Width: | Height: | Size: 60 KiB |
@@ -414,7 +414,7 @@ function writeText(textObjectList, targetContext) {
|
||||
textParagraphCanvas.height = scaleY(textObjectList[i].height) + 2 * textCanvasBuffer
|
||||
textLineContext.clearRect(0, 0, textLineCanvas.width, textLineCanvas.height)
|
||||
textParagraphContext.clearRect(0, 0, textParagraphCanvas.width, textParagraphCanvas.height)
|
||||
var outline, shadow = 0, oneLine = false, outlineThickness = 2, textAlign = 'left', finishLine = false, paragraphSpace = 0, permanentLineShift = 0, temporaryLineShift = 0, fontStyle = ''
|
||||
var outline, shadow = 0, oneLine = false, outlineThickness = 2, textAlign = 'left', finishLine = false, paragraphSpace = 0, permanentLineShift = 0, temporaryLineShift = 0, fontStyle = '', manaCost = false, canWriteText = true
|
||||
textObjectList[i].otherParameters.forEach(item => eval(item))
|
||||
textLineContext.strokeStyle = outline
|
||||
textLineContext.lineWidth = outlineThickness
|
||||
@@ -425,6 +425,10 @@ function writeText(textObjectList, targetContext) {
|
||||
var textY = 0
|
||||
var currentLineWidth = 0
|
||||
var splitText = textObjectList[i].text.replace(/\n/g, '{line}').replace(/{/g, 'fh48a3h2{').replace(/}/g, '}fh48a3h2').replace(/ /g, 'fh48a3h2 fh48a3h2').split('fh48a3h2')
|
||||
if (manaCost) {
|
||||
splitText = '{' + textObjectList[i].text.replace(/\n/g, '').replace(/{/g, ' ').replace(/}/g, ' ').replace(/ /g, '}fh48a3h2{right4}fh48a3h2{') + '}'
|
||||
splitText = splitText.split('fh48a3h2')
|
||||
}
|
||||
splitText.push('')
|
||||
innerloop:
|
||||
for (var n = 0; n < splitText.length; n++) {
|
||||
@@ -510,6 +514,12 @@ function writeText(textObjectList, targetContext) {
|
||||
} else if (manaSymbolCodeList.includes(possibleCodeLower.split('/').join(''))) {
|
||||
//THIS HAS TO BE THE LAST ONE
|
||||
var manaSymbolDiameter = textSize * 0.77
|
||||
if (manaCost) {
|
||||
var shadowOffset = eval(manaCostShadowOffset)
|
||||
textLineContext.beginPath()
|
||||
textLineContext.arc(textX + manaSymbolDiameter / 2 + shadowOffset[0], textCanvasBuffer + textSize - manaSymbolDiameter * 0.45 + shadowOffset[1], manaSymbolDiameter / 2, 0, 2 * Math.PI)
|
||||
textLineContext.fill()
|
||||
}
|
||||
textLineContext.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf(possibleCodeLower.split('/').join(''))], textX, textCanvasBuffer + textSize - manaSymbolDiameter * 0.95, manaSymbolDiameter, manaSymbolDiameter)
|
||||
currentLineWidth += manaSymbolDiameter * 1.02
|
||||
textX += manaSymbolDiameter * 1.02
|
||||
@@ -519,6 +529,9 @@ function writeText(textObjectList, targetContext) {
|
||||
} else {
|
||||
wordToWrite = splitText[n]
|
||||
}
|
||||
if (!canWriteText) {
|
||||
wordToWrite = ''
|
||||
}
|
||||
if (wordToWrite != '' || n == splitText.length - 1 || finishLine) {
|
||||
var currentWordWidth = textLineContext.measureText(wordToWrite).width
|
||||
if (currentWordWidth + currentLineWidth > scaleX(textObjectList[i].width) || n == splitText.length - 1 || finishLine) {
|
||||
|
@@ -6,7 +6,13 @@ if (!loadedVersions.includes('storybookRegular')) {
|
||||
['Black Frame', 'data/images/storybook/storybookFrameB.png', 0, 0, 1, 1, ['Full']],
|
||||
['Red Frame', 'data/images/storybook/storybookFrameR.png', 0, 0, 1, 1, ['Full']],
|
||||
['Green Frame', 'data/images/storybook/storybookFrameG.png', 0, 0, 1, 1, ['Full']],
|
||||
['Colorless Frame', 'data/images/storybook/storybookFrameC.png', 0, 0, 1, 1, ['Full']]
|
||||
['Colorless Frame', 'data/images/storybook/storybookFrameC.png', 0, 0, 1, 1, ['Full']],
|
||||
['White Power/Toughness', 'data/images/storybook/storybookPTW.png', 1114/1500, 1860/2100, 332/1500, 138/2100, ['Full']],
|
||||
['Blue Power/Toughness', 'data/images/storybook/storybookPTU.png', 1114/1500, 1860/2100, 332/1500, 138/2100, ['Full']],
|
||||
['Black Power/Toughness', 'data/images/storybook/storybookPTB.png', 1114/1500, 1860/2100, 332/1500, 138/2100, ['Full']],
|
||||
['Red Power/Toughness', 'data/images/storybook/storybookPTR.png', 1114/1500, 1860/2100, 332/1500, 138/2100, ['Full']],
|
||||
['Green Power/Toughness', 'data/images/storybook/storybookPTG.png', 1114/1500, 1860/2100, 332/1500, 138/2100, ['Full']],
|
||||
['Colorless Power/Toughness', 'data/images/storybook/storybookPTC.png', 1114/1500, 1860/2100, 332/1500, 138/2100, ['Full']]
|
||||
], 'frameClassStorybookRegular')
|
||||
}
|
||||
|
||||
|
@@ -2,17 +2,21 @@
|
||||
if (!loadedVersions.includes('storybook')) {
|
||||
loadedVersions.push('storybook')
|
||||
// loadMaskImages([['Storybook Right Half', 'data/images/storybook/maskStorybookRightHalf.png']])
|
||||
//special additional mana cost, title, and type
|
||||
}
|
||||
|
||||
if (currentVersion != 'storybook') {
|
||||
currentVersion = 'storybook'
|
||||
|
||||
loadTextOptions([
|
||||
new cardText('Card Title', '', 222/1500, 187/2100, 1248/1500, 80/2100, 'belerenb', 80/2100, 'black', ['oneLine=true']),
|
||||
new cardText('Card Type', '', 345/1500, 1268/2100, 1248/1500, 68/2100, 'belerenb', 68/2100, 'black', ['oneLine=true']),
|
||||
new cardText('Rules Text', '', 124/1500, 1348/2100, 600/1500, 624/2100, 'mplantin', 74/2100, 'black'),
|
||||
new cardText('Rules Text (Right)', '', 780/1500, 1348/2100, 600/1500, 624/2100, 'mplantin', 74/2100, 'black'),
|
||||
new cardText('Power/Toughness', '', 1190/1500, 1950/2100, 210/1500, 78/2100, 'belerenbsc', 78/2100, 'black', ['oneLine=true,textAlign="center"'])
|
||||
new cardText('Card Title', '', 222/1500, 188/2100, 1248/1500, 80/2100, 'belerenb', 80/2100, 'black', ['oneLine=true']),
|
||||
new cardText('Card Type', '', 345/1500, 1269/2100, 1248/1500, 68/2100, 'belerenb', 68/2100, 'black', ['oneLine=true']),
|
||||
new cardText('Rules Text', '', 125/1500, 1500/2100, 597/1500, 500/2100, 'mplantin', 74/2100, 'black'),
|
||||
new cardText('Rules Text (Right)', '', 796/1500, 1370/2100, 570/1500, 600/2100, 'mplantin', 74/2100, 'black'),
|
||||
new cardText('Power/Toughness', '', 1190/1500, 1957/2100, 210/1500, 78/2100, 'belerenbsc', 78/2100, 'black', ['oneLine=true,textAlign="center"']),
|
||||
new cardText('Adventure Title', '', 122/1500, 1386/2100, 600/1500, 62/2100, 'belerenb', 62/2100, 'white', ['oneLine=true']),
|
||||
new cardText('Adventure Type', '', 122/1500, 1480/2100, 600/1500, 62/2100, 'belerenb', 62/2100, 'white', ['oneLine=true']),
|
||||
new cardText('Adventure Mana Cost', '', 122/1500, 1394/2100, 600/1500, 82/2100, 'belerenb', 82/2100, 'black', ['oneLine=true','manaCost=true','canWriteText=false','textAlign="right"'])
|
||||
])
|
||||
|
||||
artX = scaleX(50/1500)
|
||||
@@ -51,11 +55,14 @@ function bottomInfoStorybook() {
|
||||
ptBoxShift = 36/2100
|
||||
}
|
||||
}
|
||||
if (ptBoxShift == 0) {
|
||||
Array.from(cardMaster.children).forEach(element => {if (element.children[2].innerHTML.includes('Power/Toughness')) {ptBoxShift = 36/2100}})
|
||||
}
|
||||
writeText(
|
||||
[
|
||||
{text: document.getElementById('inputInfoSet').value + '{right' + scaleX(0.005) + '}\u2605{right' + scaleX(0.005) + '}' + document.getElementById('inputInfoLanguage').value + ' {saveTextX}{artistbrush}{fontbelerenbsc}' + document.getElementById('inputInfoArtist').value, x: 97/1500, y: 2036/2100, width: 1306/1500, height: 36/2100, font: 'gothammedium', fontSize: 36/2100, fontColor: 'white', otherParameters: ['oneLine=true']},
|
||||
{text: document.getElementById('inputInfoNumber').value + '{loadTextX}' + document.getElementById('inputInfoRarity').value, x: 97/1500, y: 2000/2100, width: 1306/1500, height: 36/2100, font: 'gothammedium', fontSize: 36/2100, fontColor: 'white', otherParameters: ['oneLine=true']},
|
||||
{text: '{right}\u2122 & \u00a9 ' + date.getFullYear() + ' Wizards of the Coast', x: 97/1500, y: 2000/2100 + ptBoxShift, width: 1306/1500, height: 35/2100, font: 'mplantin', fontSize: 35/2100, fontColor: 'white', otherParameters: ['oneLine=true']},
|
||||
{text: document.getElementById('inputInfoSet').value + '{right' + scaleX(0.005) + '}\u2605{right' + scaleX(0.005) + '}' + document.getElementById('inputInfoLanguage').value + ' {saveTextX}{artistbrush}{fontbelerenbsc}' + document.getElementById('inputInfoArtist').value, x: 97/1500, y: 2034/2100, width: 1306/1500, height: 36/2100, font: 'gothammedium', fontSize: 36/2100, fontColor: 'white', otherParameters: ['oneLine=true']},
|
||||
{text: document.getElementById('inputInfoNumber').value + '{loadTextX}' + document.getElementById('inputInfoRarity').value, x: 97/1500, y: 1998/2100, width: 1306/1500, height: 36/2100, font: 'gothammedium', fontSize: 36/2100, fontColor: 'white', otherParameters: ['oneLine=true']},
|
||||
{text: '{right}\u2122 & \u00a9 ' + date.getFullYear() + ' Wizards of the Coast', x: 97/1500, y: 1998/2100 + ptBoxShift, width: 1306/1500, height: 35/2100, font: 'mplantin', fontSize: 35/2100, fontColor: 'white', otherParameters: ['oneLine=true']},
|
||||
{text: 'NOT FOR SALE', x: 97/1500, y: 2066/2100, width: 1306/1500, height: 30/2100, font: 'gothammedium', fontSize: 30/2100, fontColor: 'white', otherParameters: ['oneLine=true']},
|
||||
{text: '{right}CardConjurer.com', x: 97/1500, y: 2030/2100 + ptBoxShift, width: 1306/1500, height: 30/2100, font: 'mplantin', fontSize: 30/2100, fontColor: 'white', otherParameters: ['oneLine=true']}
|
||||
], bottomInfoContext)
|
||||
|