diff --git a/creator/index.html b/creator/index.html index ddeec785..50e0390b 100644 --- a/creator/index.html +++ b/creator/index.html @@ -637,6 +637,7 @@ + diff --git a/js/creator-23.js b/js/creator-23.js index a304b257..213fb5ed 100644 --- a/js/creator-23.js +++ b/js/creator-23.js @@ -503,7 +503,7 @@ function doubleClick(event, maskOrFrame) { } return null; } -function cardFrameProperties(colors, manaCost, typeLine, power, etched = false) { +function cardFrameProperties(colors, manaCost, typeLine, power, style) { var colors = colors.map(color => color.toUpperCase()) if ([ ['U', 'W'], @@ -527,18 +527,32 @@ function cardFrameProperties(colors, manaCost, typeLine, power, etched = false) var isHybrid = manaCost.includes('/'); var pinlineRules; - if (colors.length > 2) { - if (etched && typeLine.includes('Artifact')) { - pinlineRules = 'A'; - } else { + if (style == 'Seventh') { + if (colors.length == 1) { + pinlineRules = colors[0]; + } else if (colors.length >=2) { pinlineRules = 'M'; + } else if (typeLine.includes("Artifact")) { + pinlineRules = 'A'; + } else if (typeLine.includes("Land")) { + pinlineRules = 'L'; + } else { + pinlineRules = 'C'; } - } else if (colors.length != 0) { - pinlineRules = colors[0]; - } else if (typeLine.includes('Land')) { - pinlineRules = land; } else { - pinlineRules = 'A'; + if (colors.length > 2) { + if (style == 'Etched' && typeLine.includes('Artifact')) { + pinlineRules = 'A'; + } else { + pinlineRules = 'M'; + } + } else if (colors.length != 0) { + pinlineRules = colors[0]; + } else if (typeLine.includes('Land')) { + pinlineRules = land; + } else { + pinlineRules = 'A'; + } } var pinelineRulesRight; @@ -577,31 +591,35 @@ function cardFrameProperties(colors, manaCost, typeLine, power, etched = false) } var frame; - if (typeLine.includes('Land')) { - frame = 'L'; - } else if (typeLine.includes('Vehicle')) { - frame = 'V'; - } else if (typeLine.includes('Artifact')) { - frame = 'A'; - } else if (colors.length > 2) { - frame = 'M'; - } else if (colors.length == 2) { - if (isHybrid || etched) { + if (style == 'Seventh') { + frame = pinlineRules; + } else { + if (typeLine.includes('Land')) { + frame = 'L'; + } else if (typeLine.includes('Vehicle')) { + frame = 'V'; + } else if (typeLine.includes('Artifact')) { + frame = 'A'; + } else if (colors.length > 2) { + frame = 'M'; + } else if (colors.length == 2) { + if (isHybrid || style == 'Etched') { + frame = colors[0]; + } else { + frame = 'M'; + } + } else if (colors.length == 1) { frame = colors[0]; } else { - frame = 'M'; + frame = 'L'; } - } else if (colors.length == 1) { - frame = colors[0]; - } else { - frame = 'L'; } var frameRight; if (!(typeLine.includes('Vehicle') || typeLine.includes('Artifact'))) { if (typeLine.includes('Land')) { frameRight = landRight; - } else if (colors.length == 2 && (isHybrid || etched)) { + } else if (colors.length == 2 && (isHybrid || style == 'Etched')) { frameRight = colors[1]; } } @@ -629,6 +647,8 @@ function autoFrame() { autoUBFrame(colors, card.text.mana.text, card.text.type.text, card.text.pt.text); } else if (frame == 'Etched') { autoEtchedFrame(colors, card.text.mana.text, card.text.type.text, card.text.pt.text); + } else if (frame == 'Seventh') { + autoSeventhEditionFrame(colors, card.text.mana.text, card.text.type.text, card.text.pt.text); } if (document.querySelector('#selectFramePack') != frame) { @@ -681,6 +701,8 @@ async function autoUBFrame(colors, mana_cost, type_line, power) { card.text.pt.text = '{fontcolor#fff}' + card.text.pt.text; } + card.text.rules.text = card.text.rules.text.replace(/{oldflavor}/g, '{flavor}'); + card.frames = frames; card.frames.reverse(); await card.frames.forEach(item => addFrame([], item)); @@ -727,6 +749,8 @@ async function autoM15Frame(colors, mana_cost, type_line, power) { card.text.pt.text = '{fontcolor#fff}' + card.text.pt.text; } + card.text.rules.text = card.text.rules.text.replace(/{oldflavor}/g, '{flavor}'); + card.frames = frames; card.frames.reverse(); await card.frames.forEach(item => addFrame([], item)); @@ -739,7 +763,7 @@ async function autoEtchedFrame(colors, mana_cost, type_line, power) { card.frames = []; document.querySelector('#frame-list').innerHTML = null; - var properties = cardFrameProperties(colors, mana_cost, type_line, power, true); + var properties = cardFrameProperties(colors, mana_cost, type_line, power, 'Etched'); // Set frames @@ -765,6 +789,31 @@ async function autoEtchedFrame(colors, mana_cost, type_line, power) { frames.push(makeEtchedFrameByLetter(properties.frame, 'Frame', false)); frames.push(makeEtchedFrameByLetter(properties.frame, 'Border', false)); + card.text.rules.text = card.text.rules.text.replace(/{oldflavor}/g, '{flavor}'); + + card.frames = frames; + card.frames.reverse(); + await card.frames.forEach(item => addFrame([], item)); + card.frames.reverse(); +} +async function autoSeventhEditionFrame(colors, mana_cost, type_line, power) { + var frames = card.frames.filter(frame => frame.name.includes('Extension')); + + //clear the draggable frames + card.frames = []; + document.querySelector('#frame-list').innerHTML = null; + + var properties = cardFrameProperties(colors, mana_cost, type_line, power, 'Seventh'); + + // Set frames + frames.push(makeSeventhEditionFrameByLetter(properties.pinlineRules, 'Pinline', false)); + frames.push(makeSeventhEditionFrameByLetter(properties.pinlineRules, 'Rules', false)); + frames.push(makeSeventhEditionFrameByLetter(properties.frame, 'Frame', false)); + frames.push(makeSeventhEditionFrameByLetter(properties.pinlineRules, 'Textbox Pinline', false)); + frames.push(makeSeventhEditionFrameByLetter(properties.frame, 'Border', false)); + + card.text.rules.text = card.text.rules.text.replace(/{flavor}/g, '{oldflavor}'); + card.frames = frames; card.frames.reverse(); await card.frames.forEach(item => addFrame([], item)); @@ -1066,6 +1115,62 @@ function makeEtchedFrameByLetter(letter, mask = false, maskToRightHalf = false) return frame; } +function makeSeventhEditionFrameByLetter(letter, mask = false, maskToRightHalf = false) { + letter = letter.toUpperCase(); + var frameNames = { + 'W': 'White', + 'U': 'Blue', + 'B': 'Black', + 'R': 'Red', + 'G': 'Green', + 'M': 'Multicolored', + 'A': 'Artifact', + 'L': 'Land', + 'C': 'Colorless', + 'V': 'Vehicle' + } + + if (letter == 'V') { + letter = 'A'; + } + + var frameName = frameNames[letter]; + + var frame = { + 'name': frameName + ' Frame', + 'src': '/img/frames/seventh/regular/' + letter + '.png', + } + + if (mask) { + if (mask == 'Textbox Pinline') { + frame.masks = [ + { + 'src': '/img/frames/seventh/regular/trim.svg', + 'name': 'Textbox Pinline' + } + ] + } else { + frame.masks = [ + { + 'src': '/img/frames/seventh/regular/' + mask + '.svg', + 'name': mask + } + ] + } + + + if (maskToRightHalf) { + frame.masks.push({ + 'src': '/img/frames/maskRightHalf.png', + 'name': 'Right Half' + }); + } + } else { + frame.masks = []; + } + + return frame; +} async function addFrame(additionalMasks = [], loadingFrame = false) { var frameToAdd = JSON.parse(JSON.stringify(availableFrames[selectedFrameIndex])); var maskThumbnail = true;