From ca8a7dece7609a3e02358f48600e1dfe70400c5d Mon Sep 17 00:00:00 2001 From: Kyle <41976328+ImKyle4815@users.noreply.github.com> Date: Sat, 29 Jan 2022 09:40:54 -0800 Subject: [PATCH] mana symbol mapping + hybrid phyrexian --- img/manaSymbols/bgp.svg | 1 + img/manaSymbols/brp.svg | 1 + img/manaSymbols/gup.svg | 1 + img/manaSymbols/gwp.svg | 1 + img/manaSymbols/rgp.svg | 1 + img/manaSymbols/rwp.svg | 1 + img/manaSymbols/ubp.svg | 1 + img/manaSymbols/urp.svg | 1 + img/manaSymbols/wbp.svg | 1 + img/manaSymbols/wup.svg | 1 + js/creator-23.js | 33 ++++++++++++++--------- js/frames/manaSymbolsCartoony.js | 2 +- js/frames/manaSymbolsFAB.js | 2 +- js/frames/manaSymbolsFuture.js | 2 +- js/frames/manaSymbolsM21.js | 2 +- js/frames/manaSymbolsMysticalArchiveJP.js | 2 +- js/frames/manaSymbolsNeon.js | 2 +- js/frames/manaSymbolsOld.js | 2 +- js/frames/manaSymbolsOutline.js | 2 +- 19 files changed, 38 insertions(+), 21 deletions(-) create mode 100644 img/manaSymbols/bgp.svg create mode 100644 img/manaSymbols/brp.svg create mode 100644 img/manaSymbols/gup.svg create mode 100644 img/manaSymbols/gwp.svg create mode 100644 img/manaSymbols/rgp.svg create mode 100644 img/manaSymbols/rwp.svg create mode 100644 img/manaSymbols/ubp.svg create mode 100644 img/manaSymbols/urp.svg create mode 100644 img/manaSymbols/wbp.svg create mode 100644 img/manaSymbols/wup.svg diff --git a/img/manaSymbols/bgp.svg b/img/manaSymbols/bgp.svg new file mode 100644 index 00000000..0bf7ed77 --- /dev/null +++ b/img/manaSymbols/bgp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/manaSymbols/brp.svg b/img/manaSymbols/brp.svg new file mode 100644 index 00000000..96eddae3 --- /dev/null +++ b/img/manaSymbols/brp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/manaSymbols/gup.svg b/img/manaSymbols/gup.svg new file mode 100644 index 00000000..e6c2bf3b --- /dev/null +++ b/img/manaSymbols/gup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/manaSymbols/gwp.svg b/img/manaSymbols/gwp.svg new file mode 100644 index 00000000..b11b1d79 --- /dev/null +++ b/img/manaSymbols/gwp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/manaSymbols/rgp.svg b/img/manaSymbols/rgp.svg new file mode 100644 index 00000000..f72c5560 --- /dev/null +++ b/img/manaSymbols/rgp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/manaSymbols/rwp.svg b/img/manaSymbols/rwp.svg new file mode 100644 index 00000000..e6a20242 --- /dev/null +++ b/img/manaSymbols/rwp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/manaSymbols/ubp.svg b/img/manaSymbols/ubp.svg new file mode 100644 index 00000000..dc0e2748 --- /dev/null +++ b/img/manaSymbols/ubp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/manaSymbols/urp.svg b/img/manaSymbols/urp.svg new file mode 100644 index 00000000..105c11fd --- /dev/null +++ b/img/manaSymbols/urp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/manaSymbols/wbp.svg b/img/manaSymbols/wbp.svg new file mode 100644 index 00000000..46868f6e --- /dev/null +++ b/img/manaSymbols/wbp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/manaSymbols/wup.svg b/img/manaSymbols/wup.svg new file mode 100644 index 00000000..7343c2f3 --- /dev/null +++ b/img/manaSymbols/wup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/js/creator-23.js b/js/creator-23.js index 45fc60ba..747b322c 100644 --- a/js/creator-23.js +++ b/js/creator-23.js @@ -250,9 +250,12 @@ function dragOver(event, drag=true) { } } //Mana Symbols -var manaSymbols = []; -loadManaSymbols(['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', 'c', 'x', 'y', 'z', 't', 'untap', 'e', 's', 'oldtap', 'originaltap', 'purple']); -loadManaSymbols(['wu', 'wb', 'ub', 'ur', 'br', 'bg', 'rg', 'rw', 'gw', 'gu', '2w', '2u', '2b', '2r', '2g', 'wp', 'up', 'bp', 'rp', 'gp', 'p'], [1.2, 1.2]); +const mana = new Map(); +// var manaSymbols = []; +loadManaSymbols(['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', 'c', 'x', 'y', 'z', 't', 'untap', 'e', 's', 'oldtap', 'originaltap', 'purple']); +loadManaSymbols(['wu', 'wb', 'ub', 'ur', 'br', 'bg', 'rg', 'rw', 'gw', 'gu', '2w', '2u', '2b', '2r', '2g', 'wp', 'up', 'bp', 'rp', 'gp', 'p', + 'wup', 'wbp', 'ubp', 'urp', 'brp', 'bgp', 'rgp', 'rwp', 'gwp', 'gup'], [1.2, 1.2]); loadManaSymbols(['bar.png', 'whitebar.png']); loadManaSymbols(['chaos'], [1.2, 1]); loadManaSymbols(['planeswalker'], [0.6, 1.2]); @@ -287,11 +290,15 @@ function loadManaSymbols(manaSymbolPaths, size = [1, 1]) { manaSymbolPath += '.svg'; } manaSymbol.image.src = fixUri(manaSymbolPath); - manaSymbols.push(manaSymbol); + mana.set(manaSymbol.name, manaSymbol); + // manaSymbols.push(manaSymbol); }); } function findManaSymbolIndex(string) { - return manaSymbols.findIndex(element => element.name == string); + return mana.get(key) || -1; +} +function getManaSymbol(key) { + return mana.get(key); } //FRAME TAB function drawFrames() { @@ -997,7 +1004,7 @@ function writeText(textObject, targetContext) { newLineSpacing = textSize * -0.23; textSize -= scaleHeight(0.0086); } - lineContext.drawImage(manaSymbols[findManaSymbolIndex(barImageName)].image, canvasMargin + (textWidth - barWidth) / 2, canvasMargin + barDistance * textSize, barWidth, barHeight); + lineContext.drawImage(getManaSymbol(barImageName).image, canvasMargin + (textWidth - barWidth) / 2, canvasMargin + barDistance * textSize, barWidth, barHeight); } else if (possibleCode == 'i') { if (textFont == 'mplantin') { textFontExtension = 'i'; @@ -1061,7 +1068,7 @@ function writeText(textObject, targetContext) { lineContext.lineWidth = textOutlineWidth; } else if (possibleCode.includes('upinline')) { lineY -= parseInt(possibleCode.replace('upinline', '')) || 0; - } else if (possibleCode.includes('up') && possibleCode != 'up') { + } else if (possibleCode.substring(0, 2) == 'up' && possibleCode != 'up') { currentY -= parseInt(possibleCode.replace('up', '')) || 0; } else if (possibleCode.includes('down')) { currentY += parseInt(possibleCode.replace('down', '')) || 0; @@ -1090,7 +1097,7 @@ function writeText(textObject, targetContext) { } } else if (possibleCode == 'planechase') { var planechaseHeight = textSize * 1.8; - lineContext.drawImage(manaSymbols[findManaSymbolIndex('chaos')].image, currentX + canvasMargin, canvasMargin, planechaseHeight * 1.2, planechaseHeight); + lineContext.drawImage(getManaSymbol('chaos').image, currentX + canvasMargin, canvasMargin, planechaseHeight * 1.2, planechaseHeight); currentX += planechaseHeight * 1.3; startingCurrentX += planechaseHeight * 1.3; } else if (possibleCode == 'indent') { @@ -1139,13 +1146,13 @@ function writeText(textObject, targetContext) { } else if (possibleCode.includes('kerning')) { lineCanvas.style.letterSpacing = possibleCode.replace('kerning', '') + 'px'; lineContext.font = lineContext.font; //necessary for the letterspacing update to be recognized - } else if (findManaSymbolIndex(possibleCode.replace('/', '')) > -1 || findManaSymbolIndex(possibleCode.replace('/', '').split('').reverse().join('')) > -1) { + } else if (getManaSymbol(possibleCode.replace('/', '')) != undefined || getManaSymbol(possibleCode.replace('/', '').split('').reverse().join('')) != undefined) { possibleCode = possibleCode.replace('/', '') var manaSymbol; - if (textObject.manaPrefix && (findManaSymbolIndex(textObject.manaPrefix + possibleCode) != -1 || findManaSymbolIndex(textObject.manaPrefix + possibleCode.split('').reverse().join('')) != -1)) { - manaSymbol = manaSymbols[findManaSymbolIndex(textObject.manaPrefix + possibleCode)] || manaSymbols[findManaSymbolIndex(textObject.manaPrefix + possibleCode.split('').reverse().join(''))]; + if (textObject.manaPrefix && (getManaSymbol(textObject.manaPrefix + possibleCode) != undefined || getManaSymbol(textObject.manaPrefix + possibleCode.split('').reverse().join('')) != undefined)) { + manaSymbol = getManaSymbol(textObject.manaPrefix + possibleCode) || getManaSymbol(textObject.manaPrefix + possibleCode.split('').reverse().join('')); } else { - manaSymbol = manaSymbols[findManaSymbolIndex(possibleCode)] || manaSymbols[findManaSymbolIndex(possibleCode.split('').reverse().join(''))]; + manaSymbol = getManaSymbol(possibleCode) || getManaSymbol(possibleCode.split('').reverse().join('')); } var manaSymbolSpacing = textSize * 0.04 + textManaSpacing; var manaSymbolWidth = manaSymbol.width * textSize * 0.78; @@ -1189,7 +1196,7 @@ function writeText(textObject, targetContext) { fakeShadowContext.clearRect(0, 0, fakeShadow.width, fakeShadow.height); var backImage = null; if (manaSymbol.backs) { - backImage = manaSymbols[findManaSymbolIndex('back' + Math.floor(Math.random() * manaSymbol.backs) + manaSymbol.back)].image; + backImage = getManaSymbol('back' + Math.floor(Math.random() * manaSymbol.backs) + manaSymbol.back).image; } if (textArcRadius > 0) { if (manaSymbol.backs) { diff --git a/js/frames/manaSymbolsCartoony.js b/js/frames/manaSymbolsCartoony.js index 79664e3e..4104ccd9 100644 --- a/js/frames/manaSymbolsCartoony.js +++ b/js/frames/manaSymbolsCartoony.js @@ -2,7 +2,7 @@ if (!card.manaSymbols.includes('/js/frames/manaSymbolsCartoony.js')) { card.manaSymbols.push('/js/frames/manaSymbolsCartoony.js'); } -if (findManaSymbolIndex('cw') == -1) { +if (!mana.get('cw')) { loadManaSymbols([ ['cartoony/cw.png', 'cw', 4], ['cartoony/cu.png', 'cu', 4], ['cartoony/cb.png', 'cb', 4], ['cartoony/cr.png', 'cr', 4], ['cartoony/cg.png', 'cg', 4], ['cartoony/c0.png', 'cc', 15], ['cartoony/c1.png', 'cc', 15], ['cartoony/c2.png', 'cc', 15], ['cartoony/c3.png', 'cc', 15], ['cartoony/c4.png', 'cc', 15], diff --git a/js/frames/manaSymbolsFAB.js b/js/frames/manaSymbolsFAB.js index 11c5795a..fa67998c 100644 --- a/js/frames/manaSymbolsFAB.js +++ b/js/frames/manaSymbolsFAB.js @@ -2,6 +2,6 @@ if (!card.manaSymbols.includes('/js/frames/manaSymbolsFAB.js')) { card.manaSymbols.push('/js/frames/manaSymbolsFAB.js'); } -if (findManaSymbolIndex('fab') == -1) { +if (!mana.get('fab')) { loadManaSymbols(['fab/fabw', 'fab/fabu', 'fab/fabb', 'fab/fabr', 'fab/fabg']); } \ No newline at end of file diff --git a/js/frames/manaSymbolsFuture.js b/js/frames/manaSymbolsFuture.js index 82e770ab..148e70a8 100644 --- a/js/frames/manaSymbolsFuture.js +++ b/js/frames/manaSymbolsFuture.js @@ -2,6 +2,6 @@ if (!card.manaSymbols.includes('/js/frames/manaSymbolsFuture.js')) { card.manaSymbols.push('/js/frames/manaSymbolsFuture.js'); } -if (findManaSymbolIndex('fw') == -1) { +if (!mana.get('fw')) { loadManaSymbols(['future/fw.png', 'future/fu.png', 'future/fb.png', 'future/fr.png', 'future/fg.png', 'future/f0.png', 'future/f1.png', 'future/f2.png', 'future/f3.png', 'future/f4.png', 'future/f5.png', 'future/f6.png', 'future/f7.png', 'future/f8.png', 'future/f9.png', 'future/f10.png', 'future/f11.png', 'future/f12.png', 'future/f13.png', 'future/f14.png', 'future/f15.png', 'future/f16.png', 'future/f17.png', 'future/f18.png', 'future/f19.png', 'future/f20.png', 'future/fwu.png', 'future/fwb.png', 'future/fub.png', 'future/fur.png', 'future/fbr.png', 'future/fbg.png', 'future/frg.png', 'future/frw.png', 'future/fgw.png', 'future/fgu.png', 'future/fx.png']); } \ No newline at end of file diff --git a/js/frames/manaSymbolsM21.js b/js/frames/manaSymbolsM21.js index 93dfa225..96f5767e 100644 --- a/js/frames/manaSymbolsM21.js +++ b/js/frames/manaSymbolsM21.js @@ -2,6 +2,6 @@ if (!card.manaSymbols.includes('/js/frames/manaSymbolsM21.js')) { card.manaSymbols.push('/js/frames/manaSymbolsM21.js'); } -if (findManaSymbolIndex('m21w') == -1) { +if (!mana.get('m21w')) { loadManaSymbols(['m21/m21w.png', 'm21/m21u.png', 'm21/m21b.png', 'm21/m21r.png', 'm21/m21g.png', 'm21/m210.png', 'm21/m211.png', 'm21/m212.png', 'm21/m213.png', 'm21/m214.png', 'm21/m215.png', 'm21/m216.png', 'm21/m217.png', 'm21/m218.png', 'm21/m219.png', 'm21/m21x.png', 'm21/dark/dm21w.png', 'm21/dark/dm21u.png', 'm21/dark/dm21b.png', 'm21/dark/dm21r.png', 'm21/dark/dm21g.png', 'm21/dark/dm210.png', 'm21/dark/dm211.png', 'm21/dark/dm212.png', 'm21/dark/dm213.png', 'm21/dark/dm214.png', 'm21/dark/dm215.png', 'm21/dark/dm216.png', 'm21/dark/dm217.png', 'm21/dark/dm218.png', 'm21/dark/dm219.png', 'm21/dark/dm21x.png']); } \ No newline at end of file diff --git a/js/frames/manaSymbolsMysticalArchiveJP.js b/js/frames/manaSymbolsMysticalArchiveJP.js index 6a90e743..481591b5 100644 --- a/js/frames/manaSymbolsMysticalArchiveJP.js +++ b/js/frames/manaSymbolsMysticalArchiveJP.js @@ -2,7 +2,7 @@ if (!card.manaSymbols.includes('/js/frames/manaSymbolsMysticalArchiveJP.js')) { card.manaSymbols.push('/js/frames/manaSymbolsMysticalArchiveJP.js'); } -if (findManaSymbolIndex('majpw') == -1) { +if (!mana.get('majpw')) { loadManaSymbols([ 'majp/majpw', 'majp/majpu', 'majp/majpb', 'majp/majpr', 'majp/majpg', 'majp/majpc', 'majp/majpx', 'majp/majp0', 'majp/majp1', diff --git a/js/frames/manaSymbolsNeon.js b/js/frames/manaSymbolsNeon.js index e6bba98c..2ceaa4bd 100644 --- a/js/frames/manaSymbolsNeon.js +++ b/js/frames/manaSymbolsNeon.js @@ -2,7 +2,7 @@ if (!card.manaSymbols.includes('/js/frames/manaSymbolsNeon.js')) { card.manaSymbols.push('/js/frames/manaSymbolsNeon.js'); } -if (findManaSymbolIndex('neonw') == -1) { +if (!mana.get('neonw')) { loadManaSymbols([ 'neon/neonw', 'neon/neonu', 'neon/neonb', 'neon/neonr', 'neon/neong', 'neon/neonc', 'neon/neonx', 'neon/neon0', 'neon/neon1', diff --git a/js/frames/manaSymbolsOld.js b/js/frames/manaSymbolsOld.js index 19172ff6..676e2687 100644 --- a/js/frames/manaSymbolsOld.js +++ b/js/frames/manaSymbolsOld.js @@ -2,7 +2,7 @@ if (!card.manaSymbols.includes('/js/frames/manaSymbolsOld.js')) { card.manaSymbols.push('/js/frames/manaSymbolsOld.js'); } -if (findManaSymbolIndex('old') == -1) { +if (!mana.get('old')) { loadManaSymbols([ 'old/oldw', 'old/oldu', 'old/oldb', 'old/oldr', 'old/oldg', ]); diff --git a/js/frames/manaSymbolsOutline.js b/js/frames/manaSymbolsOutline.js index 31f6a1e3..6bbedc51 100644 --- a/js/frames/manaSymbolsOutline.js +++ b/js/frames/manaSymbolsOutline.js @@ -2,7 +2,7 @@ if (!card.manaSymbols.includes('/js/frames/manaSymbolsOutline.js')) { card.manaSymbols.push('/js/frames/manaSymbolsOutline.js'); } -if (findManaSymbolIndex('outlinew') == -1) { +if (!mana.get('outlinew')) { loadManaSymbols([ 'outline/outlinew', 'outline/outlineu', 'outline/outlineb', 'outline/outliner', 'outline/outlineg', 'outline/outlinec', 'outline/outlines', 'outline/outlinex', 'outline/outline0', 'outline/outline1',