mirror of
https://github.com/Investigamer/cardconjurer.git
synced 2025-07-27 05:14:53 -05:00
planechase (wip)
This commit is contained in:
@@ -46,7 +46,7 @@
|
|||||||
<div class="splitGrid">
|
<div class="splitGrid">
|
||||||
<div>
|
<div>
|
||||||
Select a frame version:<br>
|
Select a frame version:<br>
|
||||||
<select id="inputFrameVersion" onchange="loadScript('/data/scripts/versions/' + this.value + '/version.js')">
|
<select id="inputFrameVersion" onchange="loadVersion(this.value)">
|
||||||
<option value="m15">M15</option>
|
<option value="m15">M15</option>
|
||||||
<option value="token">Tokens</option>
|
<option value="token">Tokens</option>
|
||||||
<option value="m15Promo">M15 Promo</option>
|
<option value="m15Promo">M15 Promo</option>
|
||||||
@@ -55,6 +55,7 @@
|
|||||||
<option value="storybook">Storybook</option>
|
<option value="storybook">Storybook</option>
|
||||||
<option value="ixalan">Ixalan Maps</option>
|
<option value="ixalan">Ixalan Maps</option>
|
||||||
<option value="expedition">Expeditions</option>
|
<option value="expedition">Expeditions</option>
|
||||||
|
<option value="planechase">Planechase</option>
|
||||||
<option value="future">Future Shifted</option>
|
<option value="future">Future Shifted</option>
|
||||||
<option value="seventh">Seventh Edition</option>
|
<option value="seventh">Seventh Edition</option>
|
||||||
<option value="seventhTextless">Textless Seventh Edition</option>
|
<option value="seventhTextless">Textless Seventh Edition</option>
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 7.0 KiB |
BIN
data/images/cardImages/planechase/planechaseFrame - Copy.png
Normal file
BIN
data/images/cardImages/planechase/planechaseFrame - Copy.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.6 MiB |
BIN
data/images/cardImages/planechase/planechaseFrame.png
Normal file
BIN
data/images/cardImages/planechase/planechaseFrame.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 MiB |
@@ -28,7 +28,7 @@ function addToManaSymbolList(folderPath, newManaSymbolList) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addToManaSymbolList('/data/images/cardImages/manaSymbols/', ["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", "half", "inf", "chaos", "plane", "l+", "l-", "l0", "oldtap", "artistbrush", "bar", "whiteBrush", "blackBrush"])
|
addToManaSymbolList('/data/images/cardImages/manaSymbols/', ["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", "half", "inf", "chaos", "l+", "l-", "l0", "oldtap", "artistbrush", "bar", "whiteBrush", "blackBrush"])
|
||||||
|
|
||||||
function newCanvas(name) {
|
function newCanvas(name) {
|
||||||
window[name + 'Canvas'] = document.createElement('canvas')
|
window[name + 'Canvas'] = document.createElement('canvas')
|
||||||
@@ -114,6 +114,17 @@ watermark.onload = function() {
|
|||||||
watermarkUpdated()
|
watermarkUpdated()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loadVersion(versionToLoad) {
|
||||||
|
if (cardWidth / cardHeight != 5/7) {
|
||||||
|
cardWidth *= 5/7
|
||||||
|
cardHeight *= 7/5
|
||||||
|
resizeCanvases(cardWidth, cardHeight)
|
||||||
|
previewContext.rotate(Math.PI / 2)
|
||||||
|
previewContext.translate(0, -cardHeight / 2)
|
||||||
|
}
|
||||||
|
loadScript('/data/scripts/versions/' + versionToLoad + '/version.js')
|
||||||
|
}
|
||||||
|
|
||||||
class cardPlaceholder {
|
class cardPlaceholder {
|
||||||
constructor(displayName, whatToDraw, x = 0, y = 0, width = 1, height = 1, zoom = 1) {
|
constructor(displayName, whatToDraw, x = 0, y = 0, width = 1, height = 1, zoom = 1) {
|
||||||
this.name = displayName
|
this.name = displayName
|
||||||
@@ -259,7 +270,11 @@ function drawCardObjects() {
|
|||||||
mainContext.rotate(Math.PI / 2)
|
mainContext.rotate(Math.PI / 2)
|
||||||
//preview the card
|
//preview the card
|
||||||
mainContext.globalCompositeOperation = 'source-over'
|
mainContext.globalCompositeOperation = 'source-over'
|
||||||
previewContext.drawImage(mainCanvas, 0, 0, previewCanvas.width, previewCanvas.height)
|
if (cardWidth < cardHeight) {
|
||||||
|
previewContext.drawImage(mainCanvas, 0, 0, previewCanvas.width, previewCanvas.height)
|
||||||
|
} else {
|
||||||
|
previewContext.drawImage(mainCanvas, 0, 0, previewCanvas.height, previewCanvas.width)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class frameImage {
|
class frameImage {
|
||||||
@@ -518,21 +533,26 @@ function writeText(textObjectList, targetContext) {
|
|||||||
textLineContext.fillStyle = currentFontColor
|
textLineContext.fillStyle = currentFontColor
|
||||||
} else if (possibleCodeLower == 'artistbrush') {
|
} else if (possibleCodeLower == 'artistbrush') {
|
||||||
var artistBrushWidth = textSize * 1.2
|
var artistBrushWidth = textSize * 1.2
|
||||||
textLineContext.drawImage(manaSymbolImageList[62], textX, textCanvasBuffer + textSize - artistBrushWidth * 0.58, artistBrushWidth, artistBrushWidth * 13 / 21)
|
textLineContext.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf('artistbrush')], textX, textCanvasBuffer + textSize - artistBrushWidth * 0.58, artistBrushWidth, artistBrushWidth * 13 / 21)
|
||||||
textX += artistBrushWidth * 1.1
|
textX += artistBrushWidth * 1.1
|
||||||
currentLineWidth += artistBrushWidth * 1.1
|
currentLineWidth += artistBrushWidth * 1.1
|
||||||
} else if (possibleCodeLower == 'oldartistbrush') {
|
} else if (possibleCodeLower == 'oldartistbrush') {
|
||||||
var artistBrushWidth = textSize * 2.4
|
var artistBrushWidth = textSize * 2.4
|
||||||
if (textLineContext.fillStyle == '#ffffff' || textLineContext.fillStyle == 'white') {
|
if (textLineContext.fillStyle == '#ffffff' || textLineContext.fillStyle == 'white') {
|
||||||
textLineContext.drawImage(manaSymbolImageList[64], textX, textCanvasBuffer + textSize - artistBrushWidth * 13 / 63, artistBrushWidth, artistBrushWidth * 13 / 63);
|
textLineContext.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf('whiteBrush')], textX, textCanvasBuffer + textSize - artistBrushWidth * 13 / 63, artistBrushWidth, artistBrushWidth * 13 / 63);
|
||||||
} else {
|
} else {
|
||||||
textLineContext.drawImage(manaSymbolImageList[65], textX, textCanvasBuffer + textSize - artistBrushWidth * 13 / 63, artistBrushWidth, artistBrushWidth * 13 / 63);
|
textLineContext.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf('blackBrush')], textX, textCanvasBuffer + textSize - artistBrushWidth * 13 / 63, artistBrushWidth, artistBrushWidth * 13 / 63);
|
||||||
}
|
}
|
||||||
textX += artistBrushWidth * 1.1
|
textX += artistBrushWidth * 1.1
|
||||||
currentLineWidth += artistBrushWidth * 1.1
|
currentLineWidth += artistBrushWidth * 1.1
|
||||||
} else if (possibleCodeLower.includes('font')) {
|
} else if (possibleCodeLower.includes('font')) {
|
||||||
textFont = possibleCodeLower.replace('font', '')
|
textFont = possibleCodeLower.replace('font', '')
|
||||||
textLineContext.font = fontStyle + textSize + 'px ' + textFont
|
textLineContext.font = fontStyle + textSize + 'px ' + textFont
|
||||||
|
} else if (possibleCodeLower == 'planechase') {
|
||||||
|
textLineContext.drawImage(manaSymbolImageList[manaSymbolCodeList.indexOf('chaos')], textX, textCanvasBuffer + textSize - scaleX(40/2100), scaleX(102/2100), scaleX(85/2100))
|
||||||
|
textX += scaleX(125/2100)
|
||||||
|
currentLineWidth += scaleX(125/2100)
|
||||||
|
permanentLineShift += scaleX(125/2100)
|
||||||
} else if (manaSymbolCodeList.includes(possibleCodeLower.split('/').join(''))) {
|
} else if (manaSymbolCodeList.includes(possibleCodeLower.split('/').join(''))) {
|
||||||
//THIS HAS TO BE THE LAST ONE
|
//THIS HAS TO BE THE LAST ONE
|
||||||
var manaSymbolDiameter = textSize * 0.77
|
var manaSymbolDiameter = textSize * 0.77
|
||||||
@@ -636,7 +656,7 @@ function inputCardArtName(cardArtNameInput) {
|
|||||||
cardArtArtistList[i] = savedArtList[i].slice(savedArtList[i].indexOf('"artist":"') + 10, savedArtList[i].indexOf('","artist_id'))
|
cardArtArtistList[i] = savedArtList[i].slice(savedArtList[i].indexOf('"artist":"') + 10, savedArtList[i].indexOf('","artist_id'))
|
||||||
}
|
}
|
||||||
inputCardArtNameNumber(1)
|
inputCardArtNameNumber(1)
|
||||||
} else if (this.readyState == 4 && this.status == 404) {
|
} else if (this.readyState == 4 && this.status == 404 && cardArtNameInput != '') {
|
||||||
notify("Sorry, but we can't seem to find any art for '" + cardArtNameInput + "'", '#ffffaae0')
|
notify("Sorry, but we can't seem to find any art for '" + cardArtNameInput + "'", '#ffffaae0')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -754,7 +774,7 @@ function inputCardNameTextImport(cardName) {
|
|||||||
inputCardNameNumberTextImport(1)
|
inputCardNameNumberTextImport(1)
|
||||||
document.getElementById('inputCardNameNumberTextImport').max = savedImportResponse.length - 1
|
document.getElementById('inputCardNameNumberTextImport').max = savedImportResponse.length - 1
|
||||||
document.getElementById('inputCardNameNumberTextImport').value = 1
|
document.getElementById('inputCardNameNumberTextImport').value = 1
|
||||||
} else if (this.readyState == 4 && this.status == 404) {
|
} else if (this.readyState == 4 && this.status == 404 && cardName != '') {
|
||||||
savedImportResponse = ''
|
savedImportResponse = ''
|
||||||
notify("Sorry, but we can't seem to find any card named '" + cardName + "'", '#ffffaae0')
|
notify("Sorry, but we can't seem to find any card named '" + cardName + "'", '#ffffaae0')
|
||||||
}
|
}
|
||||||
|
9
data/scripts/versions/planechase/regular.js
Normal file
9
data/scripts/versions/planechase/regular.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
if (!loadedVersions.includes('planechaseRegular')) {
|
||||||
|
loadedVersions.push('planechaseRegular')
|
||||||
|
loadFrameImages([
|
||||||
|
['Planechase Frame', '/data/images/cardImages/planechase/planechaseFrame.png', 0, 0, 1, 1, ['Full']],
|
||||||
|
['Planechase Reference', '/data/images/cardImages/planechase/planechaseFrame - Copy.png', 0, 0, 1, 1, ['Full']]
|
||||||
|
], 'frameClassPlanechaseRegular')
|
||||||
|
}
|
||||||
|
|
||||||
|
hideFrameImages('frameClassPlanechaseRegular')
|
66
data/scripts/versions/planechase/version.js
Normal file
66
data/scripts/versions/planechase/version.js
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
if (!loadedVersions.includes('planechase')) {
|
||||||
|
loadedVersions.push('planechase')
|
||||||
|
// loadMaskImages([])
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentVersion != 'planechase') {
|
||||||
|
currentVersion = 'planechase'
|
||||||
|
|
||||||
|
previewContext.translate(0, cardHeight / 2)
|
||||||
|
previewContext.rotate(-Math.PI / 2)
|
||||||
|
cardWidth *= 7/5
|
||||||
|
cardHeight *= 5/7
|
||||||
|
resizeCanvases(cardWidth, cardHeight)
|
||||||
|
|
||||||
|
loadTextOptions([
|
||||||
|
new cardText('Card Title', '', 150/2100, 150/1500, 1800/2100, 67/1500, 'belerenb', 67/1500, 'black', ['oneLine=true','textAlign="center"']),
|
||||||
|
new cardText('Card Type', '', 450/2100, 1056/1500, 1200/2100, 52/1500, 'belerenb', 52/1500, 'black', ['oneLine=true','textAlign="center"']),
|
||||||
|
new cardText('Rules Text', '', 242/2100, 1030/1500, 1616/2100, 500/1500, 'mplantin', 56/1500, 'black')
|
||||||
|
])
|
||||||
|
|
||||||
|
artX = scaleX(65 / 2100)
|
||||||
|
artY = scaleY(65 / 1500)
|
||||||
|
artWidth = scaleX(1970 / 2100)
|
||||||
|
artHeight = scaleY(1372 / 1500)
|
||||||
|
|
||||||
|
manaCostXPath = '0'
|
||||||
|
manaCostYPath = '0'
|
||||||
|
manaCostDiameter = '0'
|
||||||
|
manaCostShadowOffset = 'none'
|
||||||
|
manaCostDirection = 'none'
|
||||||
|
|
||||||
|
setSymbolX = [cardWidth / 2, 'center']
|
||||||
|
setSymbolY = [scaleY(244/2100), 'center']
|
||||||
|
setSymbolWidth = scaleX(180/1500)
|
||||||
|
setSymbolHeight = scaleY(84/2100)
|
||||||
|
|
||||||
|
watermarkX = cardWidth * 2
|
||||||
|
watermarkY = cardHeight * 2
|
||||||
|
watermarkWidth = 1
|
||||||
|
watermarkHeight = 1
|
||||||
|
|
||||||
|
bottomInfoFunction = 'bottomInfoPlanechase'
|
||||||
|
|
||||||
|
bottomInfoUpdated()
|
||||||
|
}
|
||||||
|
|
||||||
|
loadFramePackOptions([['regular', 'Regular']])
|
||||||
|
|
||||||
|
function bottomInfoPlanechase() {
|
||||||
|
bottomInfoContext.clearRect(0, 0, cardWidth, cardHeight)
|
||||||
|
var ptBoxShift = 0
|
||||||
|
for (var i = 0; i < cardTextList.length; i++) {
|
||||||
|
if (cardTextList[i].name == 'Power/Toughness' && cardTextList[i].text != '') {
|
||||||
|
ptBoxShift = 36/2100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ptBoxShift == 0) {
|
||||||
|
Array.from(cardMaster.children).forEach(element => {if (element.children[2].innerHTML.includes('Power/Toughness')) {ptBoxShift = 36/2100}})
|
||||||
|
}
|
||||||
|
writeText(
|
||||||
|
[//{artistbrush}{fontbelerenbsc}' + document.getElementById('inputInfoArtist').value
|
||||||
|
{text: '{center}' + document.getElementById('inputInfoNumber').value + ' ' + document.getElementById('inputInfoSet').value + '{right' + scaleX(0.005) + '}\u2605{right' + scaleX(0.005) + '}' + document.getElementById('inputInfoLanguage').value + '{right' + scaleX(0.005) + '}{fontmplantin}{fontsize-1}\u2122 & \u00a9 ' + date.getFullYear() + ' Wizards of the Coast', x: 670/2100, y: 2044/2100, width: 760/2100, height: 36/2100, font: 'gothammedium', fontSize: 36/2100, fontColor: 'white', otherParameters: ['oneLine=true']},
|
||||||
|
{text: '{center}{artistbrush}{fontbelerenbsc}' + document.getElementById('inputInfoArtist').value, x: 670/2100, y: 2008/2100, width: 760/2100, height: 36/2100, font: 'belerenbsc', fontSize: 36/2100, fontColor: 'white', otherParameters: ['oneLine=true']},
|
||||||
|
{text: '{center}NOT FOR SALE{right' + scaleX(0.005) + '}{fontmplantin}CardConjurer.com', x: 670/2100, y: 2078/2100, width: 760/2100, height: 30/2100, font: 'gothammedium', fontSize: 30/2100, fontColor: 'white', otherParameters: ['oneLine=true']},
|
||||||
|
], bottomInfoContext)
|
||||||
|
}
|
Reference in New Issue
Block a user