diff --git a/img/frames/m15/ub/regular/a.png b/img/frames/m15/ub/regular/a.png
new file mode 100644
index 00000000..317ed8c7
Binary files /dev/null and b/img/frames/m15/ub/regular/a.png differ
diff --git a/img/frames/m15/ub/regular/aThumb.png b/img/frames/m15/ub/regular/aThumb.png
new file mode 100644
index 00000000..ff359d23
Binary files /dev/null and b/img/frames/m15/ub/regular/aThumb.png differ
diff --git a/img/frames/m15/ub/regular/b.png b/img/frames/m15/ub/regular/b.png
new file mode 100644
index 00000000..b3012283
Binary files /dev/null and b/img/frames/m15/ub/regular/b.png differ
diff --git a/img/frames/m15/ub/regular/bThumb.png b/img/frames/m15/ub/regular/bThumb.png
new file mode 100644
index 00000000..b7c8d33e
Binary files /dev/null and b/img/frames/m15/ub/regular/bThumb.png differ
diff --git a/img/frames/m15/ub/regular/g.png b/img/frames/m15/ub/regular/g.png
new file mode 100644
index 00000000..72be5e84
Binary files /dev/null and b/img/frames/m15/ub/regular/g.png differ
diff --git a/img/frames/m15/ub/regular/gThumb.png b/img/frames/m15/ub/regular/gThumb.png
new file mode 100644
index 00000000..56c0a919
Binary files /dev/null and b/img/frames/m15/ub/regular/gThumb.png differ
diff --git a/img/frames/m15/ub/regular/l.png b/img/frames/m15/ub/regular/l.png
new file mode 100644
index 00000000..c19d2988
Binary files /dev/null and b/img/frames/m15/ub/regular/l.png differ
diff --git a/img/frames/m15/ub/regular/lThumb.png b/img/frames/m15/ub/regular/lThumb.png
new file mode 100644
index 00000000..184b74af
Binary files /dev/null and b/img/frames/m15/ub/regular/lThumb.png differ
diff --git a/img/frames/m15/ub/regular/m.png b/img/frames/m15/ub/regular/m.png
new file mode 100644
index 00000000..1ab494a0
Binary files /dev/null and b/img/frames/m15/ub/regular/m.png differ
diff --git a/img/frames/m15/ub/regular/mThumb.png b/img/frames/m15/ub/regular/mThumb.png
new file mode 100644
index 00000000..fb5784ec
Binary files /dev/null and b/img/frames/m15/ub/regular/mThumb.png differ
diff --git a/img/frames/m15/ub/regular/pinline.svg b/img/frames/m15/ub/regular/pinline.svg
new file mode 100644
index 00000000..9d38629d
--- /dev/null
+++ b/img/frames/m15/ub/regular/pinline.svg
@@ -0,0 +1,5 @@
+
+
+
diff --git a/img/frames/m15/ub/regular/pinlineThumb.png b/img/frames/m15/ub/regular/pinlineThumb.png
new file mode 100644
index 00000000..c3c0d9cb
Binary files /dev/null and b/img/frames/m15/ub/regular/pinlineThumb.png differ
diff --git a/img/frames/m15/ub/regular/r.png b/img/frames/m15/ub/regular/r.png
new file mode 100644
index 00000000..d231eed4
Binary files /dev/null and b/img/frames/m15/ub/regular/r.png differ
diff --git a/img/frames/m15/ub/regular/rThumb.png b/img/frames/m15/ub/regular/rThumb.png
new file mode 100644
index 00000000..00dbb7fa
Binary files /dev/null and b/img/frames/m15/ub/regular/rThumb.png differ
diff --git a/img/frames/m15/ub/regular/rules.svg b/img/frames/m15/ub/regular/rules.svg
new file mode 100644
index 00000000..bf9105cf
--- /dev/null
+++ b/img/frames/m15/ub/regular/rules.svg
@@ -0,0 +1,5 @@
+
+
+
diff --git a/img/frames/m15/ub/regular/rulesThumb.png b/img/frames/m15/ub/regular/rulesThumb.png
new file mode 100644
index 00000000..15f3126c
Binary files /dev/null and b/img/frames/m15/ub/regular/rulesThumb.png differ
diff --git a/img/frames/m15/ub/regular/u.png b/img/frames/m15/ub/regular/u.png
new file mode 100644
index 00000000..c1dde727
Binary files /dev/null and b/img/frames/m15/ub/regular/u.png differ
diff --git a/img/frames/m15/ub/regular/uThumb.png b/img/frames/m15/ub/regular/uThumb.png
new file mode 100644
index 00000000..01cd0a1a
Binary files /dev/null and b/img/frames/m15/ub/regular/uThumb.png differ
diff --git a/img/frames/m15/ub/regular/w.png b/img/frames/m15/ub/regular/w.png
new file mode 100644
index 00000000..d417da75
Binary files /dev/null and b/img/frames/m15/ub/regular/w.png differ
diff --git a/img/frames/m15/ub/regular/wThumb.png b/img/frames/m15/ub/regular/wThumb.png
new file mode 100644
index 00000000..171a2fd5
Binary files /dev/null and b/img/frames/m15/ub/regular/wThumb.png differ
diff --git a/js/frames/groupShowcase-5.js b/js/frames/groupShowcase-5.js
index d35ac2a8..d19bdb42 100644
--- a/js/frames/groupShowcase-5.js
+++ b/js/frames/groupShowcase-5.js
@@ -24,6 +24,7 @@ loadFramePacks([
{name:'Extended Art (Regular)', value:'M15BoxTopper'},
{name:'Extended Art (Shorter Textbox)', value:'M15ExtendedArtShort'},
{name:'FNM Promo (Inverted Promos)', value:'FNM'},
+ {name:'Universes Beyond', value:'UB'},
{name:'Masterpieces/Other', value:'disabled'},
{name:'ZNR Expeditions (2020)', value:'ExpeditionZNR-1'},
{name:'Signature Spellbook (Jace/Gideon)', value:'SignatureSpellbook'},
diff --git a/js/frames/packUB.js b/js/frames/packUB.js
new file mode 100644
index 00000000..1bcf1c99
--- /dev/null
+++ b/js/frames/packUB.js
@@ -0,0 +1,50 @@
+//Create objects for common properties across available frames
+var masks = [{src:'/img/frames/m15/ub/regular/pinline.svg', name:'Pinline'}, {src:'/img/frames/m15/regular/m15MaskTitle.png', name:'Title'}, {src:'/img/frames/m15/regular/m15MaskType.png', name:'Type'}, {src:'/img/frames/m15/ub/regular/rules.svg', 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};
+//defines available frames
+availableFrames = [
+ {name:'White Frame', src:'/img/frames/m15/ub/regular/w.png', masks:masks},
+ {name:'Blue Frame', src:'/img/frames/m15/ub/regular/u.png', masks:masks},
+ {name:'Black Frame', src:'/img/frames/m15/ub/regular/b.png', masks:masks},
+ {name:'Red Frame', src:'/img/frames/m15/ub/regular/r.png', masks:masks},
+ {name:'Green Frame', src:'/img/frames/m15/ub/regular/g.png', masks:masks},
+ {name:'Multicolored Frame', src:'/img/frames/m15/ub/regular/m.png', masks:masks},
+ {name:'Artifact Frame', src:'/img/frames/m15/ub/regular/a.png', masks:masks},
+ {name:'Land Frame', src:'/img/frames/m15/ub/regular/l.png', masks:masks},
+ {name:'White Power/Toughness', src:'/img/frames/m15/regular/m15PTW.png', bounds:bounds},
+ {name:'Blue Power/Toughness', src:'/img/frames/m15/regular/m15PTU.png', bounds:bounds},
+ {name:'Black Power/Toughness', src:'/img/frames/m15/regular/m15PTB.png', bounds:bounds},
+ {name:'Red Power/Toughness', src:'/img/frames/m15/regular/m15PTR.png', bounds:bounds},
+ {name:'Green Power/Toughness', src:'/img/frames/m15/regular/m15PTG.png', bounds:bounds},
+ {name:'Multicolored Power/Toughness', src:'/img/frames/m15/regular/m15PTM.png', bounds:bounds},
+ {name:'Artifact Power/Toughness', src:'/img/frames/m15/regular/m15PTA.png', bounds:bounds},
+ {name:'Colorless Power/Toughness', src:'/img/frames/m15/regular/m15PTC.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 = 'ubRegular';
+ //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
diff --git a/legal/index.php b/legal/index.php
index f00b5ff3..a454ed6e 100644
--- a/legal/index.php
+++ b/legal/index.php
@@ -20,7 +20,7 @@ include('../globalHTML/header-1.php');
We are neither affiliated with, sponsored by, nor endorsed by Legend Story Studios. Fonts, icons, card images, and other related images are trademarks and copyrights of Legend Story Studios.
We are neither affiliated with, sponsored by, nor endorsed by Scryfall LLC.
All user-uploaded material is property of the original artist, and it is the user's responsibility to ensure that these materials are properly credited.
-
Some card frame images, or elements used therein, were sourced from Chilli_Axe, Kentu, thevodkaboy, Timmy XD69, noSpace, Sheepwave, FeuerAmeise, Smyris, Checkbox and TheGnomeRobotic.
+