diff --git a/creator/index.html b/creator/index.html index ed058bb0..db80e749 100644 --- a/creator/index.html +++ b/creator/index.html @@ -675,6 +675,7 @@ + diff --git a/img/frames/custom/circuit/a.png b/img/frames/custom/circuit/a.png new file mode 100644 index 00000000..7466d15d Binary files /dev/null and b/img/frames/custom/circuit/a.png differ diff --git a/img/frames/custom/circuit/aThumb.png b/img/frames/custom/circuit/aThumb.png new file mode 100644 index 00000000..79620396 Binary files /dev/null and b/img/frames/custom/circuit/aThumb.png differ diff --git a/img/frames/custom/circuit/b.png b/img/frames/custom/circuit/b.png new file mode 100644 index 00000000..e05a800b Binary files /dev/null and b/img/frames/custom/circuit/b.png differ diff --git a/img/frames/custom/circuit/bThumb.png b/img/frames/custom/circuit/bThumb.png new file mode 100644 index 00000000..486ab18f Binary files /dev/null and b/img/frames/custom/circuit/bThumb.png differ diff --git a/img/frames/custom/circuit/bl.png b/img/frames/custom/circuit/bl.png new file mode 100644 index 00000000..a7e61f87 Binary files /dev/null and b/img/frames/custom/circuit/bl.png differ diff --git a/img/frames/custom/circuit/blThumb.png b/img/frames/custom/circuit/blThumb.png new file mode 100644 index 00000000..a07c353d Binary files /dev/null and b/img/frames/custom/circuit/blThumb.png differ diff --git a/img/frames/custom/circuit/g.png b/img/frames/custom/circuit/g.png new file mode 100644 index 00000000..a6ff88ab Binary files /dev/null and b/img/frames/custom/circuit/g.png differ diff --git a/img/frames/custom/circuit/gThumb.png b/img/frames/custom/circuit/gThumb.png new file mode 100644 index 00000000..c1cf17f2 Binary files /dev/null and b/img/frames/custom/circuit/gThumb.png differ diff --git a/img/frames/custom/circuit/gl.png b/img/frames/custom/circuit/gl.png new file mode 100644 index 00000000..13f9c8af Binary files /dev/null and b/img/frames/custom/circuit/gl.png differ diff --git a/img/frames/custom/circuit/glThumb.png b/img/frames/custom/circuit/glThumb.png new file mode 100644 index 00000000..3a6e01a8 Binary files /dev/null and b/img/frames/custom/circuit/glThumb.png differ diff --git a/img/frames/custom/circuit/l.png b/img/frames/custom/circuit/l.png new file mode 100644 index 00000000..54aeeac3 Binary files /dev/null and b/img/frames/custom/circuit/l.png differ diff --git a/img/frames/custom/circuit/lThumb.png b/img/frames/custom/circuit/lThumb.png new file mode 100644 index 00000000..4a538fc3 Binary files /dev/null and b/img/frames/custom/circuit/lThumb.png differ diff --git a/img/frames/custom/circuit/m.png b/img/frames/custom/circuit/m.png new file mode 100644 index 00000000..b2e71276 Binary files /dev/null and b/img/frames/custom/circuit/m.png differ diff --git a/img/frames/custom/circuit/mThumb.png b/img/frames/custom/circuit/mThumb.png new file mode 100644 index 00000000..33e5e6e3 Binary files /dev/null and b/img/frames/custom/circuit/mThumb.png differ diff --git a/img/frames/custom/circuit/ml.png b/img/frames/custom/circuit/ml.png new file mode 100644 index 00000000..ec727886 Binary files /dev/null and b/img/frames/custom/circuit/ml.png differ diff --git a/img/frames/custom/circuit/mlThumb.png b/img/frames/custom/circuit/mlThumb.png new file mode 100644 index 00000000..662e0480 Binary files /dev/null and b/img/frames/custom/circuit/mlThumb.png differ diff --git a/img/frames/custom/circuit/r.png b/img/frames/custom/circuit/r.png new file mode 100644 index 00000000..3d13a87d Binary files /dev/null and b/img/frames/custom/circuit/r.png differ diff --git a/img/frames/custom/circuit/rThumb.png b/img/frames/custom/circuit/rThumb.png new file mode 100644 index 00000000..1d864171 Binary files /dev/null and b/img/frames/custom/circuit/rThumb.png differ diff --git a/img/frames/custom/circuit/rl.png b/img/frames/custom/circuit/rl.png new file mode 100644 index 00000000..2cc664e3 Binary files /dev/null and b/img/frames/custom/circuit/rl.png differ diff --git a/img/frames/custom/circuit/rlThumb.png b/img/frames/custom/circuit/rlThumb.png new file mode 100644 index 00000000..e9302576 Binary files /dev/null and b/img/frames/custom/circuit/rlThumb.png differ diff --git a/img/frames/custom/circuit/u.png b/img/frames/custom/circuit/u.png new file mode 100644 index 00000000..d4b8c7e7 Binary files /dev/null and b/img/frames/custom/circuit/u.png differ diff --git a/img/frames/custom/circuit/uThumb.png b/img/frames/custom/circuit/uThumb.png new file mode 100644 index 00000000..9e4c2373 Binary files /dev/null and b/img/frames/custom/circuit/uThumb.png differ diff --git a/img/frames/custom/circuit/ul.png b/img/frames/custom/circuit/ul.png new file mode 100644 index 00000000..c78b14d2 Binary files /dev/null and b/img/frames/custom/circuit/ul.png differ diff --git a/img/frames/custom/circuit/ulThumb.png b/img/frames/custom/circuit/ulThumb.png new file mode 100644 index 00000000..29e4e303 Binary files /dev/null and b/img/frames/custom/circuit/ulThumb.png differ diff --git a/img/frames/custom/circuit/v.png b/img/frames/custom/circuit/v.png new file mode 100644 index 00000000..ad0c3d93 Binary files /dev/null and b/img/frames/custom/circuit/v.png differ diff --git a/img/frames/custom/circuit/vThumb.png b/img/frames/custom/circuit/vThumb.png new file mode 100644 index 00000000..2ff09837 Binary files /dev/null and b/img/frames/custom/circuit/vThumb.png differ diff --git a/img/frames/custom/circuit/w.png b/img/frames/custom/circuit/w.png new file mode 100644 index 00000000..58ba53b6 Binary files /dev/null and b/img/frames/custom/circuit/w.png differ diff --git a/img/frames/custom/circuit/wThumb.png b/img/frames/custom/circuit/wThumb.png new file mode 100644 index 00000000..54761541 Binary files /dev/null and b/img/frames/custom/circuit/wThumb.png differ diff --git a/img/frames/custom/circuit/wl.png b/img/frames/custom/circuit/wl.png new file mode 100644 index 00000000..f2cf100a Binary files /dev/null and b/img/frames/custom/circuit/wl.png differ diff --git a/img/frames/custom/circuit/wlThumb.png b/img/frames/custom/circuit/wlThumb.png new file mode 100644 index 00000000..b9eb2511 Binary files /dev/null and b/img/frames/custom/circuit/wlThumb.png differ diff --git a/js/creator-23.js b/js/creator-23.js index 82932cf0..7c91e033 100644 --- a/js/creator-23.js +++ b/js/creator-23.js @@ -791,6 +791,9 @@ function autoFrame() { } else if (frame == 'UB') { autoUBFrame(colors, card.text.mana.text, card.text.type.text, card.text.pt.text); group = 'Showcase-5'; + } else if (frame == 'Circuit') { + autoCircuitFrame(colors, card.text.mana.text, card.text.type.text, card.text.pt.text); + group = 'Custom'; } else if (frame == 'Etched') { group = 'Showcase-5'; autoEtchedFrame(colors, card.text.mana.text, card.text.type.text, card.text.pt.text); @@ -869,6 +872,52 @@ async function autoUBFrame(colors, mana_cost, type_line, power) { await card.frames.forEach(item => addFrame([], item)); card.frames.reverse(); } +async function autoCircuitFrame(colors, mana_cost, type_line, power) { + var frames = card.frames.filter(frame => frame.name.includes('Extension') || frame.name.includes('Gray Holo Stamp') || frame.name.includes('Gold Holo Stamp')); + + //clear the draggable frames + card.frames = []; + document.querySelector('#frame-list').innerHTML = null; + + var properties = cardFrameProperties(colors, mana_cost, type_line, power); + + // Set frames + + if (type_line.toLowerCase().includes('legendary')) { + if (properties.pinlineRight) { + frames.push(makeCircuitFrameByLetter(properties.pinlineRight, 'Crown', true)); + } + frames.push(makeCircuitFrameByLetter(properties.pinline, "Crown", false)); + frames.push(makeCircuitFrameByLetter(properties.pinline, "Crown Border Cover", false)); + } + if (properties.pt) { + frames.push(makeCircuitFrameByLetter(properties.pt, 'PT', false)); + } + if (properties.pinlineRight) { + frames.push(makeCircuitFrameByLetter(properties.pinlineRight, 'Pinline', true)); + } + frames.push(makeCircuitFrameByLetter(properties.pinline, 'Pinline', false)); + frames.push(makeCircuitFrameByLetter(properties.typeTitle, 'Type', false)); + frames.push(makeCircuitFrameByLetter(properties.typeTitle, 'Title', false)); + if (properties.pinlineRight) { + frames.push(makeCircuitFrameByLetter(properties.rulesRight, 'Rules', true)); + } + frames.push(makeCircuitFrameByLetter(properties.rules, 'Rules', false)); + if (properties.frameRight) { + frames.push(makeCircuitFrameByLetter(properties.frameRight, 'Frame', true)); + } + frames.push(makeCircuitFrameByLetter(properties.frame, 'Frame', false)); + frames.push(makeCircuitFrameByLetter(properties.frame, 'Border', false)); + + if (card.text.pt && type_line.includes('Vehicle') && !card.text.pt.text.includes('fff')) { + card.text.pt.text = '{fontcolor#fff}' + card.text.pt.text; + } + + card.frames = frames; + card.frames.reverse(); + await card.frames.forEach(item => addFrame([], item)); + card.frames.reverse(); +} async function autoM15Frame(colors, mana_cost, type_line, power) { var frames = card.frames.filter(frame => frame.name.includes('Extension')); @@ -1854,6 +1903,112 @@ function makeUBFrameByLetter(letter, mask = false, maskToRightHalf = false) { return frame; } +function makeCircuitFrameByLetter(letter, mask = false, maskToRightHalf = false) { + letter = letter.toUpperCase(); + + if (letter == 'C') { + letter = 'L'; + } + + var frameNames = { + 'W': 'White', + 'U': 'Blue', + 'B': 'Black', + 'R': 'Red', + 'G': 'Green', + 'M': 'Multicolored', + 'A': 'Artifact', + 'L': 'Land', + 'C': 'Colorless', + 'V': 'Vehicle', + 'WL': 'White Land', + 'UL': 'Blue Land', + 'BL': 'Black Land', + 'RL': 'Red Land', + 'GL': 'Green Land', + 'ML': 'Multicolored Land' + } + + if ((mask.includes('Crown') || mask == 'PT' || mask.includes('Stamp')) && letter.includes('L') && letter.length > 1) { + letter = letter[0]; + } + + var frameName = frameNames[letter]; + + if (mask == "Crown Border Cover") { + return { + 'name': 'Legend Crown Border Cover', + 'src': '/img/black.png', + 'masks': [], + 'bounds': { + 'height': 0.0177, + 'width': 0.9214, + 'x': 0.0394, + 'y': 0.0277 + } + } + } + + if (mask == "Crown") { + var frame = { + 'name': frameName + ' Legend Crown', + 'src': '/img/frames/m15/ub/crowns/m15Crown' + letter + '.png', + 'masks': [], + 'bounds': { + 'height': 0.1667, + 'width': 0.9454, + 'x': 0.0274, + 'y': 0.0191 + } + } + if (maskToRightHalf) { + frame.masks.push({ + 'src': '/img/frames/maskRightHalf.png', + 'name': 'Right Half' + }); + } + return frame; + } + + if (mask == 'PT') { + return { + 'name': frameName + ' Power/Toughness', + 'src': '/img/frames/m15/ub/pt/' + (letter == 'L' ? 'C' : letter).toLowerCase() + '.png', + 'masks': [], + 'bounds': { + 'height': 0.0733, + 'width': 0.188, + 'x': 0.7573, + 'y': 0.8848 + } + } + } + + var frame = { + 'name': frameName + ' Frame', + 'src': '/img/frames/custom/circuit/' + letter.toLowerCase() + '.png', + } + + if (mask) { + frame.masks = [ + { + 'src': '/img/frames/m15/regular/m15Mask' + mask + '.png', + 'name': mask + } + ] + + if (maskToRightHalf) { + frame.masks.push({ + 'src': '/img/frames/maskRightHalf.png', + 'name': 'Right Half' + }); + } + } else { + frame.masks = []; + } + + return frame; +} function makeEtchedFrameByLetter(letter, mask = false, maskToRightHalf = false) { letter = letter.toUpperCase(); var frameNames = { diff --git a/js/frameSearch.js b/js/frameSearch.js index a12d2714..44123d67 100644 --- a/js/frameSearch.js +++ b/js/frameSearch.js @@ -210,6 +210,7 @@ const frameNames = new Map ([ ['Celid\'s Asap', 'CustomCelidAsap'], ['Magrao\'s Kaldheim', 'CustomMagraoKaldheim'], ['Pokemon', 'Pokemon'], + ['Circuit', 'Circuit'], ]); frameSearch = (str) => { diff --git a/js/frames/groupCustom.js b/js/frames/groupCustom.js index c8892937..af77fb30 100644 --- a/js/frames/groupCustom.js +++ b/js/frames/groupCustom.js @@ -35,5 +35,6 @@ loadFramePacks([ {name:'Kaldheim, Fullart - @feuer_ameise', value:'FeuerAmeiseKaldheim'}, {name:'Celid\'s Asap', value:'CustomCelidAsap'}, {name:'Magrao\'s Kaldheim', value:'CustomMagraoKaldheim'}, - {name:'Pokemon', value:'Pokemon'} + {name:'Pokemon', value:'Pokemon'}, + {name:'Circuit', value:'Circuit'} ]) \ No newline at end of file diff --git a/js/frames/packCircuit.js b/js/frames/packCircuit.js new file mode 100644 index 00000000..eb73e39a --- /dev/null +++ b/js/frames/packCircuit.js @@ -0,0 +1,59 @@ +//Create objects for common properties across available frames +var masks = [{src:'/img/frames/m15/regular/m15MaskPinline.png', name:'Pinline'}, {src:'/img/frames/m15/regular/m15MaskTitle.png', name:'Title'}, {src:'/img/frames/m15/regular/m15MaskType.png', name:'Type'}, {src:'/img/frames/m15/regular/m15MaskRules.png', name:'Rules'}, {src:'/img/frames/m15/regular/m15MaskFrame.png', name:'Frame'}, {src:'/img/frames/m15/regular/m15MaskBorder.png', name:'Border'}]; +var bounds = {x:0.7573, y:0.8848, width:0.188, height:0.0733}; +var bounds2 = {x:0.4254, y:0.9005, width:0.1494, height:0.0486}; +//defines available frames +availableFrames = [ + {name:'White Frame', src:'/img/frames/custom/circuit/w.png', masks:masks}, + {name:'Blue Frame', src:'/img/frames/custom/circuit/u.png', masks:masks}, + {name:'Black Frame', src:'/img/frames/custom/circuit/b.png', masks:masks}, + {name:'Red Frame', src:'/img/frames/custom/circuit/r.png', masks:masks}, + {name:'Green Frame', src:'/img/frames/custom/circuit/g.png', masks:masks}, + {name:'Multicolored Frame', src:'/img/frames/custom/circuit/m.png', masks:masks}, + {name:'Artifact Frame', src:'/img/frames/custom/circuit/a.png', masks:masks}, + {name:'Land Frame', src:'/img/frames/custom/circuit/l.png', masks:masks}, + {name:'Vehicle Frame', src:'/img/frames/custom/circuit/v.png', masks:masks}, + {name:'White Land Frame', src:'/img/frames/custom/circuit/wl.png', masks:masks}, + {name:'Blue Land Frame', src:'/img/frames/custom/circuit/ul.png', masks:masks}, + {name:'Black Land Frame', src:'/img/frames/custom/circuit/bl.png', masks:masks}, + {name:'Red Land Frame', src:'/img/frames/custom/circuit/rl.png', masks:masks}, + {name:'Green Land Frame', src:'/img/frames/custom/circuit/gl.png', masks:masks}, + {name:'Multicolored Land Frame', src:'/img/frames/custom/circuit/ml.png', masks:masks}, + {name:'White Power/Toughness', src:'/img/frames/m15/ub/pt/w.png', bounds:bounds}, + {name:'Blue Power/Toughness', src:'/img/frames/m15/ub/pt/u.png', bounds:bounds}, + {name:'Black Power/Toughness', src:'/img/frames/m15/ub/pt/b.png', bounds:bounds}, + {name:'Red Power/Toughness', src:'/img/frames/m15/ub/pt/r.png', bounds:bounds}, + {name:'Green Power/Toughness', src:'/img/frames/m15/ub/pt/g.png', bounds:bounds}, + {name:'Multicolored Power/Toughness', src:'/img/frames/m15/ub/pt/m.png', bounds:bounds}, + {name:'Artifact Power/Toughness', src:'/img/frames/m15/ub/pt/a.png', bounds:bounds}, + {name:'Colorless Power/Toughness', src:'/img/frames/m15/ub/pt/c.png', bounds:bounds}, + {name:'Vehicle Power/Toughness', src:'/img/frames/m15/ub/pt/v.png', bounds:bounds} +]; +//disables/enables the "Load Frame Version" button +document.querySelector('#loadFrameVersion').disabled = false; +//defines process for loading this version, if applicable +document.querySelector('#loadFrameVersion').onclick = async function() { + //resets things so that every frame doesn't have to + await resetCardIrregularities(); + //sets card version + card.version = 'circuit'; + //art bounds + card.artBounds = {x:0.0767, y:0.1129, width:0.8476, height:0.4429}; + autoFitArt(); + //set symbol bounds + card.setSymbolBounds = {x:0.9213, y:0.5910, width:0.12, height:0.0410, vertical:'center', horizontal: 'right'}; + resetSetSymbol(); + //watermark bounds + card.watermarkBounds = {x:0.5, y:0.7762, width:0.75, height:0.2305}; + resetWatermark(); + //text + loadTextOptions({ + mana: {name:'Mana Cost', text:'', y:0.0613, width:0.9292, height:71/2100, oneLine:true, size:71/1638, align:'right', shadowX:-0.001, shadowY:0.0029, manaCost:true, manaSpacing:0}, + title: {name:'Title', text:'', x:0.0854, y:0.0522, width:0.8292, height:0.0543, oneLine:true, font:'belerenb', size:0.0381}, + type: {name:'Type', text:'', x:0.0854, y:0.5664, width:0.8292, height:0.0543, oneLine:true, font:'belerenb', size:0.0324}, + rules: {name:'Rules Text', text:'', x:0.086, y:0.6303, width:0.828, height:0.2875, size:0.0362}, + pt: {name:'Power/Toughness', text:'', x:0.7928, y:0.902, width:0.1367, height:0.0372, size:0.0372, font:'belerenbsc', oneLine:true, align:'center'} + }); +} +//loads available frames +loadFramePack(); \ No newline at end of file