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