- // ==UserScript==
- // @name Scrying Workshop Reworked
- // @namespace http://www.flightrising.com/
- // @description UX Improvements for Flight Rising's Scrying Workshop and Search
- // @include http://flightrising.com/main.php?p=scrying&view=*
- // @include https://flightrising.com/main.php?p=scrying&view=*
- // @include http://flightrising.com/main.php?*&tab=dragon*
- // @include https://flightrising.com/main.php?*&tab=dragon*
- // @include http://flightrising.com/main.php?dragon=*
- // @include https://flightrising.com/main.php?dragon=*
- // @include http://flightrising.com/main.php?p=search&search=dragon
- // @include https://flightrising.com/main.php?p=search&search=dragon
- // @version 1.16
- // @grant none
- // ==/UserScript==
-
-
- var theColors = ["none", "Maize", "White", "Ice", "Platinum", "Silver", "Grey", "Charcoal", "Coal", "Black", "Obsidian", "Midnight", "Shadow", "Mulberry", "Thistle", "Lavender", "Purple", "Violet", "Royal", "Storm", "Navy", "Blue", "Splash", "Sky", "Stonewash", "Steel", "Denim", "Azure", "Caribbean", "Teal", "Aqua", "Seafoam", "Jade", "Emerald", "Jungle", "Forest", "Swamp", "Avocado", "Green", "Leaf", "Spring", "Goldenrod", "Lemon", "Banana", "Ivory", "Gold", "Sunshine", "Orange", "Fire", "Tangerine", "Sand", "Beige", "Stone", "Slate", "Soil", "Brown", "Chocolate", "Rust", "Tomato", "Crimson", "Blood", "Maroon", "Red", "Carmine", "Coral", "Magenta", "Pink", "Rose"];
- var theGenders = ["Male","Female"];
- var theBreeds = ["None", "Fae", "Guardian", "Mirror", "Pearlcatcher", "Ridgeback", "Tundra", "Spiral", "Imperial", "Snapper", "Wildclaw", "Nocturne", "Coatl", "Skydancer"];
- var primaryGenes = ["Basic", "Iridescent", "Tiger", "Clown", "Speckle", "Ripple", "Bar", "Crystal", "Vipera", "Piebald", "Cherub", "Poison"];
- var secondaryGenes = ["Basic", "Shimmer", "Stripes", "Eye Spots", "Freckle", "Seraph", "Current", "Daub", "Facet", "Hypnotic", "Paint", "Peregrine", "Toxin"];
- var tertiaryGenes = ["Basic", "Circuit", "Unknown 2", "Unknown 3", "Gembond", "Underbelly", "Crackle", "Smoke", "Spines", "Okapi", "Glimmer"];
- var theElements = ["None", "Earth", "Plague", "Wind", "Water", "Lightning", "Ice", "Shadow", "Light", "Arcane","Nature", "Fire"];
-
- function privateEye() {
- $('select[name="breed"]').attr('id','breed');
- $('select[name="gender"]').attr('id','gender');
- $('select[name="pc"]').attr('id','bodycolor');
- $('select[name="sc"]').attr('id','wingcolor');
- $('select[name="tc"]').attr('id','tertcolor');
- $('select[name="pg"]').attr('id','prigene');
- $('select[name="sg"]').attr('id','secgene');
- $('select[name="tg"]').attr('id','tertgene');
- $('form:first-of-type').after('<div id="results" style="margin-top: 1em;"></div>');
- var theURL = $('form:first-of-type').attr('action');
- $('.mb_button').after('<input type="button" value="Reset" style="background-color:#731d08; color:#fff; border:1px solid #000; height:25px; width:130px; font-weight:bold; margin-left: 1em; margin-right: 2em;" class="mb_button" onclick="wipeIt();">').parent('div').after('<div style="position: relative; left: 195px; top: -2.25em; display: inline;"><input type="checkbox" name="hideGone" id="hideGone" value="hideGone">Hide Exalted</div>');
- function prettyIt(stuff) {
- var resultData = $($.parseHTML(stuff)).find("#super-container").children('div').toArray();
- $('#results').html(resultData[2]);
- $('#results a[href*="did"]').attr('target','_blank');
- $('#results>div:first-of-type>div:first-of-type').attr('style','font-size:12px; text-align:center').css('margin-bottom','.5em');
- $('#results>div:first-of-type>div:nth-of-type(2)').attr('style','font-size:12px; text-align:center; line-height:1.5em; margin-bottom:.25em;');
- $('#results>div:first-of-type>div:nth-of-type(2)>span:first-of-type').hide();
- $('#results>div:first-of-type>div:nth-of-type(2)>span:nth-of-type(2)').attr('id','pages');
- if ($('#results>div:first-of-type>div:first-of-type>span:nth-of-type(2)').text() > 20) {
- $('#pages').css('float','none');
- $('#pages').html(function () {
- return $(this).html().replace('Page ', '');
- });
- if($('a:contains("»")').length) {
- $('a:contains("»")').html('<img src="/images/layout/arrow_right.png" style="vertical-align:middle; margin-left: 1em;"/>');
- } else {
- $('#pages').append('<img src="/images/layout/arrow_right_off.png" style="vertical-align:middle; margin-left: 1em;"/>');
- }
- if($('a:contains("«")').length) {
- $('a:contains("«")').html('<img src="/images/layout/arrow_left.png" style="vertical-align:middle; margin-right: 1em;"/>');
- } else {
- $('#pages').prepend('<img src="/images/layout/arrow_left_off.png" style="vertical-align:middle; margin-right: 1em;"/>');
- }
- }
- $('#pages').clone().attr('id','pages2').appendTo( "#results>div" );
- $('#pages2').css('font-size','12px').css('width','100%').css('text-align','center').css('margin-top','-1em');
- $('#results img[src*="avatar"]').parent('a').each(function() {
- var theID = (/did=(\d+)/.exec($(this).attr('href')))[1];
- $(this).attr('rel','includes/ah_dragonajax.php?id='+theID);
- $(this).cluetip({
- height: 380,
- ajaxCache: true,
- onShow: function (ct, ci) {
- var thePicture = '<img src="rendern/350/' + (parseInt(10*(theID/1000))+1) + '/' + theID + '_350.png" width="265px">';
- $('#cluetip div[style*="color:#999"]').html(thePicture);
- }
- });
- });
- exaltBeGone();
- }
- function exaltBeGone() {
- if ($('#hideGone').is(':checked')) {
- $('#results img[src*="avatar"]').parent('a').parent('span').parent('span:contains("Exalted")').hide();
- if($('#results img[src*="avatar"]').parent('a').parent('span').parent('span').length-$('#results img[src*="avatar"]').parent('a').parent('span').parent('span:contains("Exalted")').length<1) {
- $('#pages2').hide();
- }
- } else {
- $('#results img[src*="avatar"]').parent('a').parent('span').parent('span:contains("Exalted")').show();
- $('#pages2').show();
- }
- }
- $('#hideGone').change( function () {
- exaltBeGone();
- });
- $('form:first-of-type').submit(function (e) {
- e.preventDefault();
- $('#results').html('<center><br><br>Searching...<br><br><img src="/images/layout/loading.gif"></center>');
- $.ajax({
- type: "POST",
- data: $('form').serialize(),
- url: theURL,
- cache:false
- }).done(function(stuff){
- prettyIt(stuff);
- });
- });
- this.sPage = function (page) {
- $("#newpage").val(page);
- var newData = $('form').serialize();
- var newURL = $('#searched').attr('action');
- $('#results').html('<center><br><br>Loading...<br><br><img src="/images/layout/loading.gif"></center>');
- $.ajax({
- type: "POST",
- data: newData,
- url: newURL,
- cache:false
- }).done(function(stuff){
- prettyIt(stuff);
- });
- }
- this.wipeIt = function () {
- $('form')[0].reset();
- $('#results').html('');
- }
- }
-
- function changingRoom() {
- $( document ).on( "click", "#scry", function() {
- var theDragon = parseInt((/did=(\d+)/.exec(window.location.href) || /dragon=(\d+)/.exec(window.location.href))[1]);
- localStorage.setItem('scrying_greenranger',theDragon);
- movinRightAlong('morphintime');
- });
- }
-
- function showMeYourTrueColors(theSource) {
- // then, put together the translations
- var dragonInfo = parseQueryString(theSource);
- var breed = theBreeds[parseInt(dragonInfo["style"])] + "</font></b><hr>";
- var gender = "|<b><font color=#731d08>" + theGenders[parseInt(dragonInfo["gender"])];
- var primary = "<b>Primary Gene:</b> " + theColors[parseInt(dragonInfo["body"])] + " " + primaryGenes[parseInt(dragonInfo["prig"])];
- var secondary = "<b>Secondary Gene:</b> " + theColors[parseInt(dragonInfo["wing"])] + " " + secondaryGenes[parseInt(dragonInfo["secg"])];
- var tertiary = "<b>Tertiary Gene:</b> " + theColors[parseInt(dragonInfo["tert"])] + " " + tertiaryGenes[parseInt(dragonInfo["tertg"])];
-
- // then, assign the translations to the rel
- return gender + ' ' + breed + '|' + primary + '|' + secondary + '|' + tertiary;
- }
-
- function metaMorph() {
- var theRound = 0;
- this.lolRedNinjaRanger = function() {
- if($('#greenranger').val() && theRound === 0){
- theRound = 1;
- // $('#summon_dragon').click();
- setTimeout( "$('#summon_dragon').click();",250 );
- } else if($("#breed").val()&&$("#gender").val()&&$("#setage").val()&&$("#prigene").val()&&$("#bodycolor").val()&&$("#secgene").val()&&$("#wingcolor").val()&&$("#tertgene").val()&&$("#tertcolor").val()&&$("#element").val()) {
- lolRedRanger();
- } else {
- alert('oops');
- $('#newdragon').html("");
- }
- $(document).ajaxSuccess(function(e, xhr, options) {
- if (options.url.indexOf('getstats') > -1 ) {
- // alert('round: '+theRound);
- if (theRound == 1 && $('#setage').val() == 0) {
- // alert('ok');
- $('#setage').val(1).attr('selected','selected');
- theRound = 2;
- lolRedRanger();
- }
- }
- });
- }
-
- this.runAway = function() {
- $("#makindragons")[0].reset();
- $('#searcher').css('display','none');
- $("#newdragon").html("");
- }
-
- this.cowsWithHats = function() {
- $("select").each(function() {
- var theOptions = $(this).find("option"),
- random = ~~(Math.random() * theOptions.length);
- theOptions.eq(random).prop("selected", true);
- });
- lolRedRanger();
- $('#searcher').css('display','block');
- }
-
- this.canWeFixIt = function() {
- $('select').attr('onChange','lolRedNinjaRanger()');
- $('#bodycolor').insertBefore($('span:contains("Primary Gene")'));
- $('#bodycolor').before($('span:contains("Primary Color")')).before(' ');
- $('#wingcolor').insertBefore($('span:contains("Secondary Gene")'));
- $('#wingcolor').before($('span:contains("Secondary Color")')).before(' ');
- $('#tertcolor').insertBefore($('span:contains("Tertiary Gene")'));
- $('#tertcolor').before($('span:contains("Tertiary Color")')).before(' ');
- $('#makindragons br').remove();
- $('select').after('<br>');
- $('#makindragons').attr('style','position: relative; top:15px;');
- $('#makindragons .thingbutton').css('display','none');
- $('#element').after('<br/><input class="beigebutton thingbutton" type="button" onclick="movinRightAlong(\'dragon\')" value="Search?" id="searcher" style="position: relative; top: .8em; padding: 0px 20px; margin: 5px 45px 0; width: 120px;">').after('<br/><input class="beigebutton thingbutton" type="button" onclick="runAway()" value="Reset" style="position: relative; top: .5em; padding: 0px 20px; margin: 5px 45px 0; width: 120px;">').after('<br/><input class="beigebutton thingbutton" type="button" onclick="cowsWithHats()" value="Random" style="position: relative; top: .3em; padding: 0px 20px; margin: 5px 45px 0; width: 120px;">');
- }
- }
-
- function picturePicture() {
- $( document ).on( "click", "#preview img", function() {
- var dragonInfo = parseQueryString($(this).attr('src'));
- localStorage.setItem('scrying_breed',parseInt(dragonInfo["style"]));
- localStorage.setItem('scrying_gender',parseInt(dragonInfo["gender"]));
- localStorage.setItem('scrying_setage',1);
- localStorage.setItem('scrying_bodycolor',parseInt(dragonInfo["body"]));
- localStorage.setItem('scrying_wingcolor',parseInt(dragonInfo["wing"]));
- localStorage.setItem('scrying_tertcolor',parseInt(dragonInfo["tert"]));
- localStorage.setItem('scrying_prigene',parseInt(dragonInfo["prig"]));
- localStorage.setItem('scrying_secgene',parseInt(dragonInfo["secg"]));
- localStorage.setItem('scrying_tertgene',parseInt(dragonInfo["tertg"]));
- localStorage.setItem('scrying_element',parseInt(dragonInfo["elem"]));
- movinRightAlong('morphintime');
- });
- $('#id10t1').css('left','10px').css('text-align','right').before('<div id="pic1" style="height: 175px; width: 175px; position: absolute; bottom: 70px; left:-8px;"></div>');
- $('#id10t2').css('left','552px').before('<div id="pic2" style="height: 175px; width: 175px; position: absolute; left: 545px; bottom: 70px"></div>');
- if ($('div[style*="bg_assaybloodlines"]').length != 0) {
- $('#pic1').css('bottom','140px').css('left', '60px');
- $('#pic2').css('bottom','140px').css('left', '331px');
- }
- function showMeNow() {
- var id = $(this).attr('id').slice(-1);
- if ($(this).val() !== "") {
- var theDragon = $(this).val().match(/[^\=]+$/)[0].replace(/\s+/g, "").replace(/\D+/g, "");
- $(this).val(theDragon);
- if (theDragon) {
- var theGroup = (parseInt(10*(theDragon/1000))+1);
- $('#pic'+id).html('<a href="main.php?dragon='+theDragon+'"><img id="Dragon'+id+'" src="rendern/350/'+theGroup+'/'+theDragon+'_350.png" width="175px"></a>');
- $('#Dragon'+id).error(function(){
- $('#id10t'+id).val('');
- $('#pic'+id).html('');
- });
- }
- } else {
- $('#pic'+id).html('');
- $('#check').css('display','none');
- }
- if ($('#id10t1').val()||$('#id10t2').val()) {
- // lower opacity bg
- $('img[src*="bg_foreseeprogeny"]').css('opacity','0.4');
- } else {
- // full opacity bg
- $('img[src*="bg_foreseeprogeny"]').css('opacity','1');
- }
- if($(this).val() === '') {
- $('#pic'+id).html('');
- $('#check').css('display','none');
- }
- $('#validity').html('');
- $('#symbol').html('');
- }
- $('input[id*="id10t"]').change(showMeNow);
- }
-
- function exogamyFTW() {
- $('.thingbutton').attr('onclick','hipCheck()');
- $('#id10t1').parent('div:first-child').attr('style','vertical-align:middle; width:570px; margin-left:0px; padding-top:100px; text-align: center;').after('<div id="symbol" style="position: relative; font-size: 80px; top: -250px; width: 570px; text-align: center; visibility: hidden;"></div>').after('<div id="validity" style="width:140px; font-size: 12px; text-align: center; margin: 1em auto;"></div>');
- this.hipCheck = function() {
- $('#symbol').css('visibility','hidden');
- var id10t1 = $('#id10t1').val();
- var id10t2 = $('#id10t2').val();
- $("#validity").html('<img src="/images/layout/loading.gif"> loading...');
- $.ajax({
- type: "POST",
- data: {id1: id10t1, id2: id10t2},
- url: "includes/ol/scryer_bloodlines.php",
- cache:false
- }).done(function(stuff){
- var theVerdict = $($.parseHTML(stuff)).toArray();
- $("#validity").html($(theVerdict[2]).text().replace('Success!','<h2 style="color:green; margin: -8px auto 2px;">Success!</h2>')).append('<input class="beigebutton thingbutton" style="padding: 5px 20px; margin-top: .75em; left: -3px;" type="button" border="0" onclick="movinRightAlong(\'progeny\')" value="Scry Progeny?">');
- if($("#validity").text().indexOf( "Success" ) !== -1) {
- $('#symbol').css('color','green').text('✔').css('top','-275px').css('visibility','visible');
- } else {
- $('#symbol').css('color','red').text('✖').css('top','-290px').css('visibility','visible');
- }
- });
- }
- }
-
- function theWorks() {
- this.movinRightAlong = function(where) {
- localStorage.setItem('scrying_destination',where);
- localStorage.setItem('scrying_id10t1',$('#id10t1').val());
- localStorage.setItem('scrying_id10t2',$('#id10t2').val());
- $('select').each(function() {
- localStorage.setItem('scrying_'+$(this).attr('id'),$(this).val());
- });
- if(where === 'bloodlines') {
- window.location = "main.php?p=scrying&view=bloodlines";
- } else if(where === 'progeny') {
- window.location = "main.php?p=scrying&view=progeny";
- } else if(where === 'morphintime') {
- var win = window.open("main.php?p=scrying&view=morphintime","_blank");
- win.focus();
- } else if(where === 'dragon') {
- var win = window.open("main.php?p=search&search=dragon","_blank");
- win.focus();
- }
- }
- this.parseQueryString = function(theString) {
- theString = theString.slice(34);
- var query = theString,
- map = {};
- query.replace(/([^&=]+)=?([^&]*)(?:&+|$)/g, function(match, key, value) {
- (map[key] = map[key] || []).push(value);
- });
- return map;
- }
- }
-
- $(document).ajaxSuccess(function(e, xhr, options) {
- if (options.url.indexOf('scryer_get') > -1) {
- canWeFixIt();
- } else if (options.url.indexOf('scryer_progeny') > -1) {
- $('#par1').remove();
- $('#par2').remove();
- $('#preview img').each(function() {
- $(this).attr('title',showMeYourTrueColors($(this).attr('src')));
- $(this).cluetip({splitTitle: '|', width: 245, height: "auto", cursor: "pointer", positionBy: "fixed", leftOffset: "-10px", topOffset: "95px"});
- });
- $('#check').css('display','inline');
- }
- });
-
- function InjectScript(func, documentLoaded) {
- // Function stolen-I-mean-borrowed from the old FRE script
- // If head isn't ready, defer execution (this is Chrome support shenanigans)
- var head = document.head || document.getElementsByTagName("head")[0];
- if (head) {
- var source = func.toString();
- var scriptEl = document.createElement('script');
- scriptEl.setAttribute("id", func.name);
- scriptEl.setAttribute("type", "text/javascript");
- if (documentLoaded) {
- source = "document.addEventListener('DOMContentLoaded', " + source + ", true);";
- } else {
- source = "(" + source + ")();";
- }
- scriptEl.innerHTML = source;
- head.appendChild(scriptEl);
- }
- else {
- setTimeout(function() { InjectScript(func, documentLoaded); }, 0);
- }
- }
-
- var thePage = document.location.href.match(/[^\=]+$/)[0];
- InjectScript(theWorks);
- if (thePage === "dragon") {
- InjectScript(privateEye);
- } else if (thePage === "bloodlines") {
- InjectScript(picturePicture);
- InjectScript(exogamyFTW);
- } else if (thePage === "progeny") {
- InjectScript(picturePicture);
- InjectScript(showMeYourTrueColors);
- $('input[value="Preview"]').parent('div').css('width','250px').css('text-align','center');
- $('input[value="Preview"]').after('<input class="beigebutton thingbutton" type="button" onclick="movinRightAlong(\'bloodlines\')" id="check" style="margin-top: .5em; display: none;" value="Check Bloodlines?">');
- } else if (thePage === "morphintime") {
- InjectScript(metaMorph);
- runAway();
- } else {
- InjectScript(changingRoom);
- $('span[style="position:absolute; bottom:10px; right:110px;"]').css('right','207px');
- $('span[style="position:absolute; bottom:10px; right:-10px;"]').css('right','87px');
- $('div[style*="390px"]').css('width','320px').parent('span').parent('div').append('<span style="position:absolute; bottom:10px; right:-10px;"><input type="image" id="scry" src="http://i59.tinypic.com/21erkfk.png" value="Scry"></span>');
-
- }
-
- var thePage = document.location.href.match(/[^\=]+$/)[0];
- if(localStorage.getItem('scrying_destination') === thePage) {
- for(var key in localStorage) {
- if (key.indexOf("scrying_") > -1) {
- $('#'+key.slice(8)).val(localStorage.getItem(key));
- localStorage.removeItem(key);
- }
- }
- if(thePage === 'bloodlines') {
- $( "#id10t1" ).trigger( "change" );
- $( "#id10t2" ).trigger( "change" );
- hipCheck();
- } else if(thePage === 'progeny') {
- $( "#id10t1" ).trigger( "change" );
- $( "#id10t2" ).trigger( "change" );
- showNewbies();
- } else if(thePage === 'morphintime') {
- lolRedNinjaRanger();
- } else if(thePage === 'dragon') {
- $( "form:first" ).submit();
- }
- }