// ==UserScript== // @name Mutik's DotD Script // @namespace tag://kongregate // @description Fork of ForTheGoodOfAll DotD script with new look and strongly optimized js code // @author Mutik, orig version: SReject, chairmansteve, tsukinomai(Shylight)?, JHunz, wpatter6, MoW, true_heathen, HG, mutikt, PDrifting // @version 1.1.16 // @grant GM_xmlhttpRequest // @grant GM_setValue // @grant GM_getValue // @grant unsafeWindow // @include http://www.kongregate.com/games/5thPlanetGames/dawn-of-the-dragons* // @hompage http://www.dotdraids.pl // @downloadURL none // ==/UserScript== function main() { if (typeof GM_setValue === 'undefined') { var GM_setValue = function (name, value) { localStorage.setItem(name, (typeof value).substring(0, 1) + value); }; } if (typeof GM_getValue == 'undefined') { var GM_getValue = function (name, dvalue) { var value = localStorage.getItem(name); if (typeof value != 'string') return dvalue; else { var type = value.substring(0, 1); value = value.substring(1); if (type == 'b') return (value == 'true'); else if (type == 'n') return Number(value); else return value; } }; } //if (typeof GM_deleteValue == 'undefined') var GM_deleteValue = function(name) { localStorage.removeItem(name) }; window.FPX = { LandBasePrices:[4000,15000,25000,50000,75000,110000,300000,600000,1200000], LandBaseIncome:[100,300,400,700,900,1200,2700,4500,8000], LandCostRatio: function(owned) { var landCosts = [4000,15000,25000,50000,75000,110000,300000,600000,1200000]; var icr = [1,1,1,1,1,1,1,1,1]; /*Income/Cost ratio*/ var i = 9; while (i--) { landCosts[i] += FPX.LandBasePrices[i] * owned[i] / 10; icr[i] = FPX.LandBaseIncome[i] / landCosts[i]; } return icr; } }; window.timeSince = function(date,after) { if (typeof date === 'number') date = new Date(date); var seconds = Math.abs(Math.floor((new Date().getTime() - date.getTime())/1000)); var interval = Math.floor(seconds/31536000); var pretext = 'about ', posttext = after ? ' left' : ' ago'; if (interval >= 1) return pretext + interval + ' year' + (interval == 1 ? '' : 's') + posttext; interval = Math.floor(seconds/2592000); if (interval >= 1) return pretext + interval + ' month' + (interval == 1 ? '' : 's') + posttext; interval = Math.floor(seconds/86400); if (interval >= 1) return pretext + interval + ' day' + (interval == 1 ? '' : 's') + posttext; interval = Math.floor(seconds/3600); if (interval >= 1) return pretext + interval + ' hour' + (interval == 1 ? '' : 's') + posttext; interval = Math.floor(seconds/60); if (interval >= 1) return interval + ' minute' + (interval == 1 ? '' : 's') + posttext; return Math.floor(seconds) + ' second' + (seconds == 1 ? '' : 's') + posttext; }; window.isNumber = function(n) { return !isNaN(parseFloat(n)) && isFinite(n); }; window.SRDotDX = { version: { major: "1.1.16", minor: 'Mutik\'s mod' }, util: { getQueryVariable: function(v, s){ var query = String(s||window.location.search.substring(1)); if(query.indexOf('?')>-1) query = query.substring(query.indexOf('?')+1); var vars = query.split('&'); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split('='); if (decodeURIComponent(pair[0]) == v) { return decodeURIComponent(pair[1]); } } return '' }, getRaidFromUrl: function(url){ var r = {id: 0, boss: '', hash: '', diff: 0, sid: 1}, cnt = 0; var reg = /[?&]([^=]+)=([^?&]+)/ig, p = url.replace(/&/gi,'&').replace(/kv_&/gi,'&kv_').replace(/http:?/gi,''); while ((i = reg.exec(p)) != null) { switch (i[1]) { case 'kv_raid_id': case 'raid_id': r.id = parseInt(i[2]); cnt++; break; case 'kv_difficulty': case 'difficulty': r.diff = parseInt(i[2]); cnt++; break; case 'kv_raid_boss': case 'raid_boss': r.boss = i[2]; cnt++; break; case 'kv_hash': case 'hash': r.hash = i[2]; cnt++; break; case 'kv_serverid': case 'serverid': r.sid = parseInt(i[2]); cnt++; break; } } if (cnt < 4) return null; return r; }, getShortNum: function (num) { if (isNaN(num) || num < 0) return num; if (num >= 1000000000000) return (num / 1000000000000).toPrecision(4) + 't'; if (num >= 1000000000) return (num / 1000000000).toPrecision(4) + 'b'; if (num >= 1000000) return (num / 1000000).toPrecision(4) + 'm'; if (num >= 1000) return (num / 1000).toPrecision(4) + 'k'; return num + '' }, getShortNumMil: function (num) { if (isNaN(num) || num < 0) return num; if (num >= 1000000) return (num / 1000000).toPrecision(4) + 't'; if (num >= 1000) return (num / 1000).toPrecision(4) + 'b'; return num.toPrecision(4) + 'm' }, objToUriString: function(obj) { if (typeof obj == 'object') { var str = ''; for (var i in obj) str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]) + '&'; str = str.substring(0,str.length-1); return str } return ''; }, serialize: function(obj) { var str = []; for (var p in obj) if(obj[p]!=null)str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); return str.join("&"); }, stringFormat: function() { var s = arguments[0]; for (var i = 0; i < arguments.length - 1; i++) { var reg = new RegExp("\\{" + i + "\\}", "gm"); s = s.replace(reg, arguments[i + 1]); } return s; } }, config: (function() { var tmp, reqSave = false; try { tmp = JSON.parse(GM_getValue('SRDotDX','{}')) } catch (e) { tmp = {}; reqSave = true } //Raids tab vars tmp.filterSearchStringR = typeof tmp.filterSearchStringR == 'string' ? tmp.filterSearchStringR : ''; tmp.fltIncVis = typeof tmp.fltIncVis == 'boolean' ? tmp.fltIncVis : false; tmp.fltShowNuked = typeof tmp.fltShowNuked == 'boolean' ? tmp.fltShowNuked : false; tmp.fltShowAll = typeof tmp.fltShowAll == 'boolean' ? tmp.fltShowAll : false; //Options tab vars tmp.importFiltered = typeof tmp.importFiltered == 'boolean' ? tmp.importFiltered : true; tmp.hideRaidLinks = typeof tmp.hideRaidLinks == 'boolean' ? tmp.hideRaidLinks : false; tmp.hideBotLinks = typeof tmp.hideBotLinks == 'boolean' ? tmp.hideBotLinks : false; tmp.hideVisitedRaids = typeof tmp.hideVisitedRaids == 'boolean' ? tmp.hideVisitedRaids : false; tmp.hideVisitedRaidsInRaidList = typeof tmp.hideVisitedRaidsInRaidList == 'boolean' ? tmp.hideVisitedRaidsInRaidList : false; tmp.markMyRaidsVisted = typeof tmp.markMyRaidsVisted == 'boolean' ? tmp.markMyRaidsVisted : false; tmp.markImportedVisited = typeof tmp.markImportedVisited == 'boolean' ? tmp.markImportedVisited : false; tmp.FPXLandOwnedCount = typeof tmp.FPXLandOwnedCount == 'object' ? tmp.FPXLandOwnedCount : [0, 0, 0, 0, 0, 0, 0, 0, 0]; tmp.prettyPost = typeof tmp.prettyPost == 'boolean' ? tmp.prettyPost : false; tmp.useMaxRaidCount = typeof tmp.useMaxRaidCount == 'boolean' ? tmp.useMaxRaidCount : false; tmp.maxRaidCount = !(typeof tmp.maxRaidCount === 'undefined') ? tmp.maxRaidCount : 3000; tmp.autoImportPaste = typeof tmp.autoImportPaste == 'boolean' ? tmp.autoImportPaste : false; tmp.confirmForLargePaste = typeof tmp.confirmForLargePaste == 'boolean' && tmp.confirmPasteSize ? tmp.confirmForLargePaste : false; tmp.confirmPasteSize = typeof tmp.confirmPasteSize == 'number' ? tmp.confirmPasteSize : 1000; tmp.showStatusOverlay = typeof tmp.showStatusOverlay == 'boolean' ? tmp.showStatusOverlay : false; tmp.confirmDeletes = typeof tmp.confirmDeletes == 'boolean' ? tmp.confirmDeletes : true; tmp.autoPostPaste = typeof tmp.autoPostPaste == 'boolean' ? tmp.autoPostPaste : false; tmp.whisperTo = typeof tmp.whisperTo == 'string' ? tmp.whisperTo : ''; tmp.formatLinkOutput = typeof tmp.formatLinkOutput == 'boolean' ? tmp.formatLinkOutput : false; tmp.linkShowFs = typeof tmp.linkShowFs == 'boolean' ? tmp.linkShowFs : false; tmp.linkShowAp = typeof tmp.linkShowAp == 'boolean' ? tmp.linkShowAp : false; tmp.unvisitedRaidPruningMode = typeof tmp.unvisitedRaidPruningMode == 'number' ? tmp.unvisitedRaidPruningMode : 1; tmp.selectedRaids = typeof tmp.selectedRaids == 'string' ? tmp.selectedRaids : ''; tmp.pastebinUrl = typeof tmp.pastebinUrl == 'string' ? tmp.pastebinUrl : ''; tmp.bckColor = typeof tmp.bckColor == 'string' ? tmp.bckColor : 'fff'; tmp.lastImported = typeof tmp.lastImported == 'number' ? tmp.lastImported : (new Date.getTime() - 1728000000); tmp.hideKongForum = typeof tmp.hideKongForum == 'boolean' ? tmp.hideKongForum : false; tmp.hideGameDetails = typeof tmp.hideGameDetails == 'boolean' ? tmp.hideGameDetails : false; tmp.hideGameTitle = typeof tmp.hideGameTitle == 'boolean' ? tmp.hideGameTitle : true; tmp.chatFilterString = typeof tmp.chatFilterString == 'string' ? tmp.chatFilterString : ''; tmp.filterSearchStringC = typeof tmp.filterSearchStringC == 'string' ? tmp.filterSearchStringC : ''; tmp.chatSize = typeof tmp.chatSize == 'number' ? tmp.chatSize : 300; tmp.sbEnable = typeof tmp.sbEnable == 'boolean' ? tmp.sbEnable : true; tmp.sbSlim = typeof tmp.sbSlim == 'boolean' ? tmp.sbSlim : false; //tmp.cbDisable = typeof tmp.cbDisable == 'boolean' ? tmp.cbDisable : true; tmp.sbRightSide = typeof tmp.sbRightSide == 'boolean' ? tmp.sbRightSide : false; tmp.kongUser = typeof tmp.kongUser == 'string' ? tmp.kongUser : 'Guest'; tmp.kongAuth = typeof tmp.kongAuth == 'string' ? tmp.kongAuth : '0'; tmp.kongId = typeof tmp.kongId == 'string' ? tmp.kongId : '0'; tmp.kongMsg = typeof tmp.kongMsg == 'boolean' ? tmp.kongMsg : false; tmp.hideGameTab = typeof tmp.hideGameTab == 'boolean' ? tmp.hideGameTab : false; tmp.hideAccTab = typeof tmp.hideAccTab == 'boolean' ? tmp.hideAccTab : false; tmp.dotdxTabName = typeof tmp.dotdxTabName == 'string' ? tmp.dotdxTabName : 'Raids'; tmp.themeNum = typeof tmp.themeNum == 'number' ? tmp.themeNum : 0; tmp.fontNum = typeof tmp.fontNum == 'number' ? tmp.fontNum : 0; tmp.hideScrollBar = typeof tmp.hideScrollBar == 'boolean' ? tmp.hideScrollBar : false; tmp.hideWChat = typeof tmp.hideWChat == 'boolean' ? tmp.hideWChat : false; tmp.filterChatLinks = typeof tmp.filterChatLinks == 'boolean' ? tmp.filterChatLinks : true; tmp.filterRaidList = typeof tmp.filterRaidList == 'boolean' ? tmp.filterRaidList : false; tmp.newRaidsAtTopOfList = typeof tmp.newRaidsAtTopOfList == 'boolean' ? tmp.newRaidsAtTopOfList : false; tmp.serverMode = typeof tmp.serverMode == 'number' ? tmp.serverMode : 1; tmp.sbConfig = typeof tmp.sbConfig == 'object' ? tmp.sbConfig : [ {"type":"label","name":"Camps"}, {"type":"btn","name":"GoC","cmd":"/camp goc"}, {"type":"btn","name":"MaM","cmd":"/camp mam"}, {"type":"btn","name":"GD","cmd":"/camp gd"}, {"type":"label","name":"Tiers"}, {"type":"btn","name":"Bella","cmd":"/raid bella"}, {"type":"btn","name":"Xerk","cmd":"/raid xerkara"}, {"type":"btn","name":"Tisi","cmd":"/raid tisi"}, {"type":"label","name":"Join"}, {"type":"btn","name":"Farms","cmd":"SRDotDX.gui.quickImportAndJoin(\'farm:nnm\')"}, {"type":"label","name":"Utils"}, {"type":"btn","color":"g","name":"(Re)Load","sname":"Reld","cmd":"SRDotDX.reload()"}, {"type":"btn","color":"r","name":"Unload","sname":"Kill","cmd":"/kill"}, {"type":"btn","name":"Room 1","sname":"CR1","cmd":"SRDotDX.gui.gotoRoom(1)"}, {"type":"btn","name":"Room 2","sname":"CR2","cmd":"SRDotDX.gui.gotoRoom(2)"}, {"type":"btn","name":"Room 8","sname":"CR3","cmd":"SRDotDX.gui.gotoRoom(8)"}, {"type":"label","name":"Sheets","sname":"Help"}, {"type":"btn","name":"Magic","sname":"Mag","cmd":"https://docs.google.com/spreadsheets/d/1O0eVSnzlACP9XJDq0VN4kN51ESUusec3-gD4dKPHRNU"}, {"type":"btn","name":"Mount","sname":"Mnt","cmd":"https://docs.google.com/spreadsheet/ccc?key=0AiSpM5yAo8atdER2NEhHY3VjckRhdWctWV8yampQZUE"}, {"type":"btn","name":"Gear","cmd":"https://docs.google.com/spreadsheet/lv?key=0AvP2qXrWcHBxdHpXZkUzTHNGNkVWbjE5c2VEZUNNMUE"}, {"type":"label","name":"Raids"}, {"type":"jtxt"}, {"type":"btn","color":"g","name":"Join","cmd":"SRDotDX.gui.joinSelectedRaids(true)"}, {"type":"btn","color":"b","name":"Import","sname":"Imp","cmd":"SRDotDX.gui.importFromServer()"}, {"type":"btn","color":"y","name":"RaidBot","sname":"Bot","cmd":"SRDotDX.gui.switchBot()"} ]; if (typeof tmp.mutedUsers != 'object') tmp.mutedUsers = {}; if (typeof tmp.ignUsers != 'object') tmp.ignUsers = {}; if (typeof tmp.friendUsers != 'object') tmp.friendUsers = {}; if (typeof tmp.raidList != 'object') tmp.raidList = {}; if (typeof tmp.filters !== 'object') tmp.filters = [{},{}]; if (typeof tmp.lastFilter != 'object') { tmp.lastFilter = typeof tmp.lastFilter == 'string' ? [tmp.lastFilter,tmp.lastFilter] : ["",""]; } if (tmp.filters.length != 2) {var tmpFlt = [tmp.filters,tmp.filters]; tmp.filters = tmpFlt;} if (tmp.lastImported > (new Date().getTime())) tmp.lastImported = (new Date().getTime() - 1728000000); if(reqSave) GM_setValue('SRDotDX', JSON.stringify(tmp)); // Delete expired raids for (var id in tmp.raidList) { if (tmp.raidList.hasOwnProperty(id)) { tmp.raidList[id].timeLeft = function() { return this.expTime - parseInt((new Date).getTime() / 1000) }; if (tmp.raidList[id].timeLeft() < 0) delete tmp.raidList[id]; else { if (typeof tmp.raidList[id].magic == "undefined") tmp.raidList[id].magic = [0,0,0,0,0,0]; if (typeof tmp.raidList[id].hp == "undefined") tmp.raidList[id].hp = 1.0; if (typeof tmp.raidList[id].sid == "undefined") tmp.raidList[id].sid = 1; } } } tmp.addRaid = function(hash,id,boss,diff,sid,visited,user,ts,room,magic,hp) { if((/ /).test(user)) { var reg = new RegExp('[0-9]+|[0-9a-zA-Z_]+','g'); room = reg.exec(user); user = reg.exec(user); } if (typeof SRDotDX.config.raidList[id] != 'object') { var tStamp = typeof ts == 'undefined' || ts == null ? parseInt((new Date).getTime() / 1000) : parseInt(ts); SRDotDX.config.raidList[id] = { hash: hash, id: id, boss: boss, diff: diff, sid: sid, visited: visited, nuked: false, user: user, lastUser: user, timeStamp: tStamp, expTime: (typeof SRDotDX.raids[boss] == 'object' ? SRDotDX.raids[boss].duration : 96) * 3600 + tStamp, timeLeft: function() {return this.expTime - parseInt((new Date).getTime() / 1000) }, room: typeof room == 'undefined' || room == null ? SRDotDX.util.getRoomNumber() : parseInt(room), magic: typeof magic == 'undefined' || magic == null ? [0,0,0,0,0,0] : magic, hp: typeof hp == 'undefined' || hp == null ? 1.0 : parseFloat(hp)}; SRDotDX.gui.addRaid(id); } SRDotDX.config.raidList[id].lastUser = user; return SRDotDX.config.raidList[id] }; tmp.getRaid = function(id) { if (typeof SRDotDX.config.raidList[id] == 'object') { if (SRDotDX.config.raidList[id].timeLeft() > 1) return SRDotDX.config.raidList[id]; delete SRDotDX.config.raidList[id]; } return false }; tmp.setFilter = function(raidid,diff,val) { SRDotDX.config.filters[SRDotDX.config.serverMode-1][raidid][diff] = val }; tmp.save = function(b) { b = typeof b == 'undefined' ? true : b; GM_setValue('SRDotDX', JSON.stringify(SRDotDX.config)); if(b) setTimeout(SRDotDX.config.save, 60000, true); else console.log('[DotDX] Manual config save invoked'); }; return tmp; })(), request: { importLock: false, joinAfterImport: false, fromChat: false, quickBtnLock: true, filterSearchStringT: "", raids: function(isinit,hours){ if(!SRDotDX.gui.joining) { var secs = 15 - parseInt(((new Date()).getTime() - SRDotDX.config.lastImported)/1000); if(secs > 0) { SRDotDX.echo("You can import again in " + secs + " seconds."); return } console.log("[DotDX] Importing raids from raids server ..."); if(!isinit) this.initialize("Requesting raids"); else SRDotDX.request.tries++; var h = hours ? ('&h='+hours) : ''; SRDotDX.request.req({ eventName: "dotd.getraids", url: "http://dotdraids.pl/download.php?u="+SRDotDX.config.kongUser+h, method: "GET", headers: {"Content-Type": "application/JSON"}, timeout: 30000 }); } }, initialize: function (str) { SRDotDX.gui.doStatusOutput(str + "...",3000,true); SRDotDX.request.tries = 0; SRDotDX.request.seconds = 0; SRDotDX.request.complete = false; SRDotDX.request.timer = setTimeout(SRDotDX.request.tick, 1000, str); }, tick: function (str) { if(!SRDotDX.request.complete){ if(SRDotDX.request.seconds > 25){ SRDotDX.gui.doStatusOutput("Request failed.",3000,true); return; } SRDotDX.request.seconds++; SRDotDX.gui.doStatusOutput(str + " ("+SRDotDX.request.seconds+")...",1500,true); SRDotDX.request.timer = setTimeout(SRDotDX.request.tick, 1000, str); } }, complete: false, seconds: 0, timer: null, tries: 0, req: function(param){ var a = document.createEvent("MessageEvent"); if (a.initMessageEvent) a.initMessageEvent("dotd.req", false, false, JSON.stringify(param), document.location.protocol + "//" + document.location.hostname, 0, window, null); else a = new MessageEvent("dotd.req",{"origin":document.location.protocol + "//" + document.location.hostname, "lastEventId": 0, "source": window, "data": JSON.stringify(param)}); document.dispatchEvent(a); }, pasteImport: function (url,isinit) { if(!isinit) this.initialize("Importing PasteBin"); var pb = url.split('com/')[1]; SRDotDX.request.req({ eventName: "dotd.importpb", url: 'http://pastebin.com/raw.php?i=' + pb, method: "GET", timeout: 30000 }); }, init: function () { document.addEventListener("dotd.joinraid", SRDotDX.request.joinRaidResponse, false); document.addEventListener("dotd.importpb", SRDotDX.request.pbResponse, false); document.addEventListener("dotd.getraids", SRDotDX.request.addRaids, false); delete this.init; }, joinRaid: function(r){ if(typeof r == 'object') { if(!SRDotDX.gui.joining) SRDotDX.request.initialize("Joining " + (!SRDotDX.raids[r.boss]?r.boss.capitalize().replace(/_/g,' '):SRDotDX.raids[r.boss].shortname)); var joinData = 'kongregate_username='+SRDotDX.config.kongUser+'&kongregate_user_id='+SRDotDX.config.kongId+'&kongregate_game_auth_token='+SRDotDX.config.kongAuth; SRDotDX.request.req({ eventName: "dotd.joinraid", url: SRDotDX.util.stringFormat('http://50.18.191.15/kong/raidjoin.php?' + joinData + '&kv_action_type=raidhelp&kv_raid_id={0}&kv_hash={1}&serverid={2}', r.id, r.hash, r.sid), method: "GET", timeout: 30000 }); } }, addRaids: function(e) { var r, data = JSON.parse(e.data); if(data.status != 200) { if(SRDotDX.request.tries >=3){ SRDotDX.request.complete = true; SRDotDX.gui.doStatusOutput("Raids server busy. Please try again in a moment."); console.log('[DotDX] Raids request failed (url: ' + data.url + ')'); console.log(JSON.stringify(data)); } else { console.log("[DotDX] Raids server unresponsive (status " + data.status + "). Trying again, " + SRDotDX.request.tries + " tries."); } return; } SRDotDX.request.complete = true; try{ r = JSON.parse(data.responseText) } catch (ex) { console.log("[DotDX] Raids importing error or no raids imported"); console.log('[DotDX] responseText: ' + data.responseText); return; } SRDotDX.gui.doStatusOutput("Importing " + r.raids.length + " raids..."); var raid, j = r.raids.length, n = 0, t=0; var swt = !SRDotDX.config.importFiltered, filter = SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML; while(j--) { raid = r.raids[j]; if (swt || filter.indexOf('fltList_' + raid.b + '_' + (raid.d-1)) < 0) { t++; if (!SRDotDX.config.getRaid(raid.i)) { n++; SRDotDX.config.addRaid(raid.h, parseInt(raid.i), raid.b, parseInt(raid.d), parseInt(raid.s), false, raid.p, raid.t, raid.r, raid.m.split("_").map(function(x){return parseInt(x)}), parseFloat(raid.hp)); } else { SRDotDX.config.raidList[raid.i].magic = raid.m.split("_").map(function(x){return parseInt(x)}); SRDotDX.config.raidList[raid.i].hp = parseFloat(raid.hp); } } } console.log('[DotDX] Import raids from server complete'); var id = r.prune.length > 3 ? r.prune.split("_"):[]; j = id.length; var d = 0; //clean chat var chat = document.getElementsByClassName('chat_message_window'), p; for (var c=0; c -1) p[i].parentNode.removeChild(p[i]); } //clean db while(j--) { if(SRDotDX.config.raidList[id[j]]) delete SRDotDX.config.raidList[id[j]], d++; } console.log('[DotDX] Pruning dead raids from server complete'); SRDotDX.gui.selectRaidsToJoin('import response'); SRDotDX.config.lastImported = (new Date).getTime(); SRDotDX.echo('Imported ' + t + ' raids, ' + n + ' new, ' + d + ' pruned.'); if (SRDotDX.request.joinAfterImport) { SRDotDX.gui.selectRaidsToJoin(); SRDotDX.gui.joinSelectedRaids(false) } SRDotDX.gui.doStatusOutput('Imported ' + n + ' new raids, ' + d + ' pruned.',5000,true); }, pbResponse: function(e){ var data = JSON.parse(e.data); if(data && data.responseText && data.url) { SRDotDX.request.complete = true; if(/raw/.test(data.url)) { SRDotDX.gui.importingPastebin = true; var r = data.responseText.split('|'), pbid = data.url.split('=')[1], u, i = 0; if (/\|/.test(data.responseText)) { u = r[1]; r = r[3]; } else { u = 'Unknown'; r = r[0]; } SRDotDX.gui.Importing = true; var total = Object.keys(SRDotDX.config.raidList).length; r = r.split(','); while(i < r.length) SRDotDX.getRaidDetails(r[i], u, SRDotDX.config.markImportedVisited), i++; var diff = Object.keys(SRDotDX.config.raidList).length - total; SRDotDX.gui.doStatusOutput('Import complete, ' + diff + ' of ' + i + ' new raids'); var pbtot = i; SRDotDX.gui.Importing = false; var els = document.getElementsByClassName("pb_"+pbid); if(els.length > 0) { if (pbtot == 0 ) { i = 0; while (i < els.length) els[i].innerHTML = '(Import)', i++ } else { i = 0; while (i < els.length) els[i].innerHTML='(Imported, ' + diff + ' new)', i++ } } setTimeout(SRDotDX.config.save, 1000, false); SRDotDX.gui.importingPastebin = false; console.log('[DotDX] Pastebin import complete (url: ' + data.url + ')'); } } }, joinRaidResponse: function(e){ var data = JSON.parse(e.data); if(data && data.responseText && data.url) { SRDotDX.request.complete = true; var raidid = SRDotDX.util.getQueryVariable('kv_raid_id', data.url); SRDotDX.gui.joinRaidComplete++; var status = '', statustxt = ''; if (typeof SRDotDX.config.raidList[raidid] == 'object') { SRDotDX.config.raidList[raidid].visited = true; SRDotDX.gui.toggleRaid('visited', raidid, true); SRDotDX.gui.raidListItemUpdate(raidid); if (/successfully (re-)?joined/i.test(data.responseText)) { SRDotDX.gui.joinRaidSuccessful++; statustxt = (SRDotDX.raids[SRDotDX.config.raidList[raidid].boss]?SRDotDX.raids[SRDotDX.config.raidList[raidid].boss].shortname:SRDotDX.config.raidList[raidid].boss) + " joined successfully."; } else if (/already a member/i.test(data.responseText)){ statustxt = "Join Failed. You are already a member."; }else if (/already completed/i.test(data.responseText)) { SRDotDX.gui.joinRaidDead++; statustxt = "Join failed. Raid is dead."; SRDotDX.nukeRaid(raidid); }else if (/not a member of the guild/i.test(data.responseText)) { SRDotDX.gui.joinRaidDead++; statustxt = "Join failed. You are not member of that Guild."; SRDotDX.nukeRaid(raidid); } else if (/(invalid|find) raid (hash|ID)/i.test(data.responseText)) { statustxt = "Join failed. Invalid hash or ID."; SRDotDX.gui.joinRaidInvalid++; SRDotDX.gui.deleteRaidFromDB(raidid); } else { statustxt = 'Unknown join response.'; } } else SRDotDX.gui.joinRaidInvalid++; if(SRDotDX.gui.joining) { if(SRDotDX.gui.joinRaidComplete >= SRDotDX.gui.joinRaidList.length) { statustxt = "Finished joining. " + SRDotDX.gui.joinRaidSuccessful + " new, " + SRDotDX.gui.joinRaidDead + " dead."; SRDotDX.gui.joinFinish(true); SRDotDX.echo(statustxt); setTimeout(SRDotDX.config.save, 3000, false) } else { statustxt = "Joined " + SRDotDX.gui.joinRaidComplete + " of " + SRDotDX.gui.joinRaidList.length + ". " + SRDotDX.gui.joinRaidSuccessful + " new, " + SRDotDX.gui.joinRaidDead + " dead."; if(SRDotDX.gui.joinRaidIndex < SRDotDX.gui.joinRaidList.length) SRDotDX.request.joinRaid(SRDotDX.gui.joinRaidList[SRDotDX.gui.joinRaidIndex++]); } } else { setTimeout(SRDotDX.config.save, 3000, false); } if(statustxt != '') SRDotDX.gui.doStatusOutput(statustxt, 4000, true); } } }, getRaidDetailsBase: function(url) { var r = {diff: 0, hash: '', boss: '', id: 0, sid: 0}, i, cnt = 0; var reg = /[?&]([^=]+)=([^?&]+)/ig, p = url.replace(/&/gi,'&').replace(/kv_&/gi,'&kv_'); while ((i = reg.exec(p)) != null) { switch (i[1]) { case 'kv_raid_id': case 'raid_id': r.id = parseInt(i[2]); cnt++; break; case 'kv_difficulty': case 'difficulty': r.diff = parseInt(i[2]); cnt++; break; case 'kv_raid_boss': case 'raid_boss': r.boss = i[2]; cnt++; break; case 'kv_hash': case 'hash': r.hash = i[2]; cnt++; break; case 'kv_serverid': case 'serverid': r.sid = parseInt(i[2]); cnt++; break; } } if (cnt < 4) return false; r.diffLongText = ['Normal','Hard','Legendary','Nightmare'][r.diff-1]; r.diffShortText = ['N','H','L','NM'][r.diff-1]; var stats = SRDotDX.raids[r.boss]; if (typeof stats == 'object') { r.name = stats.name; r.shortname = stats.shortname; r.size = stats.size; r.type = stats.type; r.dur = stats.duration; r.durText = stats.dur + "hrs"; r.stat = stats.stat; r.statText = SRDotDX.getStatText(stats.stat); } else { r.name = r.boss[0].toUpperCase() + r.boss.substring(1).replace(/_/g," "); r.shortname = r.name; r.dur = 48; } return r; }, getPasteDetails: function(url,user) { user = user ? user : ''; var pb = {url: url, id: url.substring(url.length-8)}; pb.id = url.substring(url.length-8); console.log('[DotDX] Importing Pastebin (url: ' + url + ')'); var info = SRDotDX.config.getPaste(pb.id); if (!info) { info = SRDotDX.config.addPaste(pb.url, pb.id, user); if(typeof info == 'object') pb.isNew = true } else pb.isNew = false; pb.user = info.user; pb.lastUser = info.lastUser; return pb; }, getTierTxt: function(hp,ppl,ap){ var num = hp/ppl; num = ap? num/2 : num; if (num >= 1000000000000) return (num / 1000000000000).toPrecision(3) + 't'; if (num >= 1000000000) return (num / 1000000000).toPrecision(3) + 'b'; if (num >= 1000000) return (num / 1000000).toPrecision(3) + 'm'; if (num >= 1000) return (num / 1000).toPrecision(3) + 'k'; return num + '' }, getRaidDetails: function(url,user,visited,ts,room) { user = user ? user : ''; var rVis = visited ? visited : user == SRDotDX.config.kongUser && SRDotDX.config.markMyRaidsVisted; var r = SRDotDX.util.getRaidFromUrl(url); if (r == null) return null; //if (r && typeof r.diff == 'number' && typeof r.hash == 'string' && typeof r.boss == 'string' && typeof r.id == 'string') { var filter = SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML; r.visited = rVis; if(!SRDotDX.config.importFiltered || filter.indexOf('fltList_' + r.boss + '_' + (r.diff-1)) < 0){ var info = SRDotDX.config.getRaid(r.id); if (typeof info != 'object') { info = SRDotDX.config.addRaid(r.hash, r.id, r.boss, r.diff, r.sid, r.visited, user, ts, room); if (typeof info == 'object') r.isNew = true; else return null; } else r.isNew = false; r.timeStamp = info.timeStamp; r.visited = info.visited; r.nuked = info.nuked; } r.linkText = function() { var raidInfo = SRDotDX.raids[r.boss]; var txt = '[ ' + ['','N','H','L','NM'][this.diff] + ' '; txt += raidInfo ? raidInfo.shortname : r.boss.capitalize().replace(/_/g,' '); if(SRDotDX.config.linkShowFs) txt += raidInfo ? ', fs:' + SRDotDX.getTierTxt(raidInfo.health[this.diff-1],raidInfo.size,false) : ''; if(SRDotDX.config.linkShowAp) txt += raidInfo ? ', ap:' + SRDotDX.getTierTxt(raidInfo.health[this.diff-1],raidInfo.size,true) : ''; txt += (this.visited || r.visited) ? '|★' : ''; txt += ' ]'; return txt }; return r; //} //return null }, getRaidLink: function(msg,user) { msg = msg.replace(/[\r\n]/g,''); //var isOld = msg.indexOf('kongregate.com'); var m; //console.log('[CHK] 0: ' + msg); //http://apps.facebook.com/dawnofthedragons/?action_type=raidhelp&raid_id=13337793&difficulty=4&raid_boss=hargamesh&hash=nlME7DAP2y&trk=rallycry //if(isOld > 0) var m = /^((?:(?!]).)*)((?:(?!<\/?a[ >]).)*(?: ].*)?)$/i.exec(msg); //else m = /^(.+)?(http:\/\/apps.facebook.com\/dawnofthedragons\/(\?[\d\w_=&;]+))(.+)?$/i.exec(msg); if (m) { //console.log('[CHK] A: ' + m[3]); var raid = SRDotDX.getRaidDetails(m[3], user); if (raid) { //console.log('[CHK] B: ' + m[2]); raid.ptext = m[1]?m[1]:""; raid.url = m[2].replace(/kv_&/ig,'&kv_'); raid.ntext = m[4]?m[4]:""; return raid; } } return null }, getPastebinLink: function(msg,user) { msg = msg.replace(/[\r\n]/g,''); var m = /^((?:(?!]).)*)?http:\/\/pastebin\.com\/\w{8}((?:(?!<\/?a[ >]).)*(?: ].*)?)$/i.exec(msg); if (m) { var pb = SRDotDX.getPasteDetails(/http:\/\/pastebin\.com\/\w{8}/i.exec(m[0]) + '',user); if(typeof pb != 'undefined') { pb.ptext = m[1] || ''; pb.ntext = m[2] || ''; } return pb; } else return null; }, getStatText: function(stat) { stat = stat.toLowerCase(); var r = ''; if (stat == '?' || stat == 'Unknown') return 'Unknown'; if (stat.indexOf('s') > -1) r = 'Stamina'; if (stat.indexOf('h') > -1) r += (r != '' ? (stat.indexOf('e') > -1 ? ', ' : ' and ') : '') + 'Honor'; if (stat.indexOf('e') > -1) r += (r != '' ? ' and ' : '') + 'Energy'; return r; }, getTimestamp: function() { return '('+('0'+(new Date().getHours())).slice(-2) + ':' + ('0'+(new Date().getMinutes())).slice(-2)+')'; }, refreshRaidTab: function() { var el_out = document.getElementById('raid_list'); var el_in1 = document.getElementById('mainRaidsFrame'); var el_in2 = document.getElementById('topRaidPane'); el_out.style.height = el_in1.offsetHeight - el_in2.offsetHeight - 8 + 'px'; }, isFirefox: navigator.userAgent.indexOf('Firefox') > 0, gui: { getChatNumber: function() { var cont = document.getElementsByClassName('chat_room_template'), ele; for (var i=0; i 13) holodeck.chatWindow().activateRoomChooser(); else { var roomObj = JSON.parse('{"type": "game", "xmpp_name": "138636-dawn-of-the-dragons-'+num+'", "name": "Dawn of the Dragons - Room #'+('0'+num).slice(-2)+'", "id": "138636-dawn-of-the-dragons-'+num+'"}'); holodeck.joinRoom(roomObj); } }, httpCommand: function(url){ window.open(url); }, applySidebarUI: function(mode) { //-1:remove, 0:redraw, 1:create, 2:recreate if(mode == -1 || mode == 2) { document.getElementById('dotdx_sidebar').remove(); if (mode == -1) SRDotDX.gui.chatResize(SRDotDX.config.chatSize), document.getElementsByClassName("links_connect")[0].setAttribute('colspan','2'); } if (mode > -1) { var sbElemObj, sbElemTxt, i; if (mode > 0) { if (mode == 1) document.getElementsByClassName("links_connect")[0].setAttribute('colspan','3'); if(!SRDotDX.config.sbRightSide) document.getElementById('chat_container').style.marginLeft = "0px"; SRDotDX.gui.cHTML('td').set({id: 'dotdx_sidebar', style: 'width: '+(SRDotDX.config.sbSlim ? '40' : '70')+'px'}) .html('
',true) .attach('after',SRDotDX.config.sbRightSide?'chat_container_cell':'gameholder'); SRDotDX.gui.chatResize(SRDotDX.config.chatSize); } if (mode == 0) { sbElemTxt = '[' + document.getElementById('options_sbConfig').value + ']'; sbElemObj = JSON.parse(sbElemTxt); SRDotDX.config.sbConfig = sbElemObj; SRDotDX.config.save(false); } else sbElemObj = SRDotDX.config.sbConfig; var slim = SRDotDX.config.sbSlim ? " slim" : ""; var sLen = SRDotDX.config.sbSlim ? 0:1; var stopper = parseInt((document.getElementById('gameholder').offsetHeight-36)/26); var sName = [["Ely","Elyssa"],["Kas","Kasan"]]; var sidebarElemHtml = '
'+sName[SRDotDX.config.serverMode-1][sLen]+'
', sbCmd = "", sbCls='class="'; for (i=0; i
'; continue } if (sbElemObj[i].type == 'label') { sidebarElemHtml += '
'; if(SRDotDX.config.sbSlim) { if(typeof sbElemObj[i].sname == 'undefined') sidebarElemHtml += sbElemObj[i].name.substring(0,4); else sidebarElemHtml += sbElemObj[i].sname; } else sidebarElemHtml += sbElemObj[i].name; sidebarElemHtml += '
'; continue; } if (typeof sbElemObj[i].cmd != 'undefined') { if (sbElemObj[i].cmd.charAt(0) == '/') sbCmd = 'SRDotDX.gui.chatCommand(\''+sbElemObj[i].cmd+'\')'; else if (sbElemObj[i].cmd.indexOf('://') > 2) sbCmd = 'SRDotDX.gui.httpCommand(\''+sbElemObj[i].cmd+'\')'; else sbCmd = sbElemObj[i].cmd.replace("'","\'"); } if (typeof sbElemObj[i].color != 'undefined') { if (sbElemObj[i].color.charAt(0).toLowerCase() == 'b' && sbElemObj[i].color.toLowerCase() != 'black') sbCls += 'b'; else if (sbElemObj[i].color.charAt(0).toLowerCase() == 'g') sbCls += 'g'; else if (sbElemObj[i].color.charAt(0).toLowerCase() == 'r') sbCls += 'r'; else if (sbElemObj[i].color.charAt(0).toLowerCase() == 'y') sbCls += 'y'; } sidebarElemHtml += ''; sbCmd = ""; sbCls='class="'; } SRDotDX.gui.cHTML('#dotdx_sidebar_container').html(sidebarElemHtml,true); } }, toggleSlimSB: function() { if(SRDotDX.config.sbEnable) { this.applySidebarUI(2); this.chatResize(); } }, restoreDefaultSB: function() { document.getElementById('options_sbConfig').value = '{"type":"label","name":"Camps"},\n\ {"type":"btn","name":"GoC","cmd":"/camp goc"},\n\ {"type":"btn","name":"MaM","cmd":"/camp mam"},\n\ {"type":"btn","name":"GD","cmd":"/camp gd"},\n\ {"type":"label","name":"Tiers"},\n\ {"type":"btn","name":"Bella","cmd":"/raid bella"},\n\ {"type":"btn","name":"Xerk","cmd":"/raid xerkara"},\n\ {"type":"btn","name":"Tisi","cmd":"/raid tisi"},\n\ {"type":"label","name":"Join"},\n\ {"type":"btn","name":"Farms","cmd":"SRDotDX.gui.quickImportAndJoin(\'farm:nnm\')"},\n\ {"type":"label","name":"Utils"},\n\ {"type":"btn","color":"g","name":"(Re)Load","sname":"Reld","cmd":"SRDotDX.reload()"},\n\ {"type":"btn","color":"r","name":"Unload","sname":"Kill","cmd":"/kill"},\n\ {"type":"btn","name":"Room 1","sname":"CR1","cmd":"SRDotDX.gui.gotoRoom(1)"},\n\ {"type":"btn","name":"Room 2","sname":"CR2","cmd":"SRDotDX.gui.gotoRoom(2)"},\n\ {"type":"btn","name":"Room 8","sname":"CR3","cmd":"SRDotDX.gui.gotoRoom(8)"},\n\ {"type":"label","name":"Sheets","sname":"Help"},\n\ {"type":"btn","name":"Magic","sname":"Mag","cmd":"https://docs.google.com/spreadsheets/d/1O0eVSnzlACP9XJDq0VN4kN51ESUusec3-gD4dKPHRNU"},\n\ {"type":"btn","name":"Mount","sname":"Mnt","cmd":"https://docs.google.com/spreadsheet/ccc?key=0AiSpM5yAo8atdER2NEhHY3VjckRhdWctWV8yampQZUE"},\n\ {"type":"btn","name":"Gear","cmd":"https://docs.google.com/spreadsheet/lv?key=0AvP2qXrWcHBxdHpXZkUzTHNGNkVWbjE5c2VEZUNNMUE"},\n\ {"type":"label","name":"Raids"},\n\ {"type":"jtxt"},\n\ {"type":"btn","color":"g","name":"Join","cmd":"SRDotDX.gui.joinSelectedRaids(true)"},\n\ {"type":"btn","color":"b","name":"Import","sname":"Imp","cmd":"SRDotDX.gui.importFromServer()"},\n\ {"type":"btn","color":"y","name":"RaidBot","sname":"Bot","cmd":"SRDotDX.gui.switchBot()"}'; SRDotDX.gui.applySidebarUI(0); }, hideWC: function(init) { var offset; if(init) offset = SRDotDX.config.hideWChat?-265:0; else { offset = SRDotDX.config.hideWChat?265:-265; SRDotDX.config.hideWChat = !SRDotDX.config.hideWChat; document.getElementById('hideWCtxt').innerHTML = SRDotDX.config.hideWChat?'Show World Chat':'Hide World Chat'; } var gmWidth = document.getElementById('gameholder').offsetWidth + offset; document.getElementById('gameholder').style.width = gmWidth + "px"; document.getElementById('game').style.width = gmWidth + "px"; this.chatResize(); }, chatResize: function(chatSize) { var size = chatSize || SRDotDX.config.chatSize; SRDotDX.config.chatSize = size; var gmWidth = document.getElementById('gameholder').offsetWidth; var gmHeight = document.getElementById('gameholder').offsetHeight; var sbWidth = SRDotDX.config.sbEnable ? (SRDotDX.config.sbSlim ? 40 : 70) : 0; var hScroll = SRDotDX.config.hideScrollBar ? SRDotDX.gui.getScrollbarWidth():0; var chatWidthInc = size - 300; var chatCorr = chatWidthInc/75*2; var overallWidth = (300 + gmWidth + sbWidth + chatWidthInc) + "px"; document.getElementById('maingame').style.width = overallWidth; document.getElementById('maingamecontent').style.width = overallWidth; document.getElementById('flashframecontent').style.width = overallWidth; document.getElementById('chat_container').style.width = size + "px"; document.getElementById('raid_list').style.width = 282 + hScroll + "px"; document.getElementById('raid_list').style.overflowY = hScroll?'scroll':'auto'; document.getElementById('chat_tab_pane').style.width = (size - 16) + "px"; document.getElementById('DotDX_chatResizeElems').innerHTML = '#kong_game_ui textarea.chat_input { width: ' + (size - 30) + 'px !important; }\ #kong_game_ui div#chat_raids_overlay { width: ' + (size - 8) + 'px }\ #kong_game_ui div#chat_raids_overlay > span { width: ' + (size - 18 - chatCorr) + 'px }\ #kong_game_ui div.chat_message_window { height: ' + (gmHeight-254) + 'px !important; width: ' + (size - 18 + hScroll) + 'px; overflow-y: '+(hScroll?'scroll':'auto')+'; }\ #kong_game_ui div#chat_rooms_container div.chat_tabpane.users_in_room { width: ' + (size - 22 + hScroll) + 'px }\ div#dotdx_sidebar_container { height: ' + (gmHeight-5) + 'px; '+ (SRDotDX.config.sbRightSide?"text-align: left; padding-left: 1px; padding-right: 6px;":"text-align: left; margin-left: 2px; padding-left: 6px") + ' }'; }, helpBox: function(boxId,magId,raidId,mouseOut) { var boxDiv = document.getElementById(boxId); var magSpan = document.getElementById(magId); if (mouseOut) { SRDotDX.gui.CurrentRaidsOutputTimer = setTimeout(function(){document.getElementById('chat_raids_overlay').className = "";}, 1500); //setTimeout(elfade, 1500, boxId, 750, false);//fadeEffect.init(boxId, 0);//boxDiv.style.display = 'none'; magSpan.style.maxWidth = "0"; magSpan.innerHTML = ""; } else { var info = SRDotDX.config.getRaid(raidId), msg = 'Unknown', mWidth = "0", raid; if (info == null) { msg = 'Raid removed from db'; } else if (typeof SRDotDX.raids[info.boss] == 'undefined') { msg = '' + info.boss.capitalize().replace(/_/ig,' ') + ' on ' + ['Normal','Hard','Legendary','Nightmare'][info.diff-1] + ''; } else { var magE = info.magic.reduce(function(a,b){return a+b;}); raid = SRDotDX.raids[info.boss]; var diff = info.diff - 1; if(magE) { var magI = ""; //if(SRDotDX.isFirefox) for (i=0; i '; //else for (i=0; i '; magSpan.innerHTML = magI; mWidth = (raid.nd*18+10) + "px"; } msg = '' + raid.name + ' on ' + ['Normal','Hard','Legendary','Nightmare'][diff] + '
'; msg += (raid.type == '' ? '' : raid.type + ' | ') + SRDotDX.raidSizes[raid.size].name + ' Raid' + (diff == 3 ? ' | AP' : ''); var size = raid.size < 15 ? 10 : raid.size; var fs = raid.health[diff] / (raid.size==101?100:raid.size); if (typeof raid.lt != 'object') { var epicRatio = SRDotDX.raidSizes[size].ratios; if (size == 15) msg += '
fs: ' + SRDotDX.util.getShortNum(fs) + ' | 65d: ' + SRDotDX.util.getShortNum(fs*epicRatio[0]) + ' | 338d: ' + SRDotDX.util.getShortNum(fs*epicRatio[9]) + ' | 375d: ' + SRDotDX.util.getShortNum(fs*epicRatio[10]); else msg += '
fs: ' + SRDotDX.util.getShortNum(fs) + ' | 1e: ' + SRDotDX.util.getShortNum(fs*epicRatio[0]) + ' | 2e: ' + SRDotDX.util.getShortNum(fs*epicRatio[2]) + ' | 2/3e: ' + SRDotDX.util.getShortNum(fs*epicRatio[3]); //msg += '
2e: ' + epicRatio[2] + ' | 3e: ' + epicRatio[4] + ' | fs: ' + fs; } else if (typeof raid.lt == 'object') { var ele = SRDotDX.lootTiers[raid.lt[diff]]; var step = SRDotDX.config.chatSize == 450 ? 6 : (SRDotDX.config.chatSize == 375 ? 5 : 4); var steplow = step - 1; var tiers = ele['tiers']; var epics = ele['epics']; var best = ele['best']; var e = ele['e']?'e':''; var text = ''; var i = tiers.length; var tier; while (i--) { tier = (i%step == steplow ? '
' : /*(i > 0 && tiers[i-1].charAt(5)=='b'? '  | ' :*/ ' | '/*)*/ ) + (i==best?'':'') + epics[i]; if (epics[i]<10) tier += e+':  '; else if (epics[i]<100) tier += e+': '; else tier += e+': '; tier += tiers[i] + (i==best?'':''); text = tier + text; } msg += ' | Tiered
fs:    ' + SRDotDX.util.getShortNum(fs) + '' + text; } else {} } if(magE) magSpan.style.maxWidth = mWidth; document.getElementById(boxId + '_text').innerHTML = msg; if (!(boxDiv.className.indexOf('active') > 0)) boxDiv.className = "active"; clearTimeout(SRDotDX.gui.CurrentRaidsOutputTimer); } }, displayHint: function(hint) { var helpEl = document.getElementById('helpBox'); if (hint) { helpEl.children[0].innerHTML = hint; //helpEl.style.display = 'block'; helpEl.style.maxHeight = '50px'; helpEl.style.borderTopWidth = '1px'; } else helpEl.style.maxHeight = '0', helpEl.style.borderTopWidth = '0'; }, refreshRaidList: function() { document.getElementById('raid_list').innerHTML = ""; for (var i=0; i '; //else for (i=0; i '; //var tlh = r.timeLeft()/3600; var tlp = (r.timeLeft()/(36*rd.duration)).toPrecision(3); //tlh = parseInt(tlh); //var tlm = parseInt(r.timeLeft()%3600/60); var lii = SRDotDX.gui.cHTML('div').set({ class: 'raid_list_item ' + this.diffTxt[r.diff][0] + (r.visited ? ' DotDX_visitedRaidList' : '') + (r.nuked ? ' DotDX_nukedRaidList' : ''), id: 'DotDX_'+ r.id, raidid: r.id }).html(' \ ' + this.diffTxt[r.diff][1] + ' \ ' + rd.shortname + ' \ ' + (r.visited ? '★' : '') + ' \ DEL\ hp/time: '+(r.hp*100).toPrecision(3)+'% / '+tlp+'%\ ', true); //'+magI+'
\ //hp: ' + SRDotDX.util.getShortNum(r.hp*rd.health[r.diff-1]) + ' ('+(r.hp*100).toPrecision(3)+'%), time: '+(tlh>0?(tlh+' h'):(tlm+' min'))+' ('+tlp+'%)DEL\ if (SRDotDX.config.newRaidsAtTopOfRaidList) { var arr = a.getElementsByClassName('raid_list_item'); if (arr.length > 0) lii.attach('before', arr[0]); else lii.attach('to', a); } else lii.attach('to', a); } } else delete SRDotDX.config.raidList[id]; }, toggleRaidListDesc: function(el,mode) { if (mode) { clearTimeout(el.timerout); el.timerin = setTimeout(function(){el.lastElementChild.style.display = "block";},500) } else { clearTimeout(el.timerin); el.timerout = setTimeout(function(){el.lastElementChild.style.display = "none";},50) } return false; }, cHTML: function(ele) { function Cele(ele) { this._ele = ele; this.ele = function() { return this._ele }; this.set = function(param) { for (var attr in param) if (param.hasOwnProperty(attr)) this._ele.setAttribute(attr, param[attr]); return this }; this.text = function(text) { this._ele.appendChild(document.createTextNode(text)); return this }; this.html = function(text,overwrite) { this._ele.innerHTML = overwrite ? text : this._ele.innerHTML + text; return this }; this.on = function(event,func,bubble) { this._ele.addEventListener(event,func,bubble); return this }; this.attach = function(method,ele) { if (typeof ele == 'string') ele = document.getElementById(String(ele)); if (!(ele instanceof Node)) throw 'Invalid attachment element specified'; else if (!/^(?:to|before|after)$/i.test(method)) throw 'Invalid append method specified'; else if (method == 'to') ele.appendChild(this._ele); else if (method == 'before') ele.parentNode.insertBefore(this._ele, ele); else if (typeof ele.nextSibling == 'undefined') ele.parentNode.appendChild(this._ele); else ele.parentNode.insertBefore(this._ele, ele.nextSibling); return this }; } if (typeof ele == 'string') ele = /^#/i.test(String(ele)) ? document.getElementById(ele.substring(1)) : document.createElement(String(ele)); if (ele instanceof Node) return new Cele(ele); throw 'Invalid element type specified'; }, errorMessage: function(s,tag) { tag = typeof tag == 'undefined' ? 'b' : tag; SRDotDX.gui.doStatusOutput('<'+tag+'>'+s+'') }, updateMessage: function() { SRDotDX.gui.doStatusOutput(SRDotDX.gui.standardMessage(), false, true) }, postingMessage: function(i,ct) { SRDotDX.gui.doStatusOutput('Posting message ' + i + (typeof ct == 'undefined' ? '' : ' of ' + ct + '...'), false) }, standardMessage: function() { return Object.keys(SRDotDX.config.raidList).length + ' raids in db, ' + SRDotDX.gui.joinRaidList.length + ' selected to join'; }, CurrentStatusOutputTimer: 0, doStatusOutput: function(str,msecs,showInChat) { showInChat = typeof showInChat == 'undefined' ? true : showInChat; msecs = typeof msecs == 'undefined' ? 4000 : msecs; var el = document.getElementById('StatusOutput'); var el2 = document.getElementById('dotdx_chat_overlay'); el.innerHTML = str; if (showInChat) { el2.innerHTML = str; } if (msecs) { if (SRDotDX.gui.CurrentStatusOutputTimer) clearTimeout(SRDotDX.gui.CurrentStatusOutputTimer); SRDotDX.gui.CurrentStatusOutputTimer = setTimeout(function(){ el.innerHTML = SRDotDX.gui.standardMessage(); el2.innerHTML = SRDotDX.gui.standardMessage() }, msecs); } }, toggleDisplay: function(elem,sender,el2) { if (typeof elem == 'undefined') return; var el = document.getElementById(elem); var alls = document.getElementsByName(sender.getAttribute('name')); if(alls.length > 0) { for (var i = 0; i < alls.length; i++) { if(alls[i].nodeName == 'P') alls[i].getElementsByTagName('span')[0].innerHTML = '+'; else alls[i].style.display = 'none'; } el.style.display = 'block'; sender.getElementsByTagName('span')[0].innerHTML = '−'; } else { if (el.style.display == 'none') { el.style.display = 'block'; sender.getElementsByTagName('span')[0].innerHTML = '−'; } else { el.style.display = 'none'; sender.getElementsByTagName('span')[0].innerHTML = '+'; } } if (typeof el2 == 'string') { switch(el2) { case 'raid_list': SRDotDX.refreshRaidTab(); break; case 'share_list': document.getElementById('DotDX_raidsToSpam').style.height = ( 526 - document.getElementById('FPXShare').offsetHeight - document.getElementById('FPXImport').offsetHeight ) + "px"; } } }, Importing: false, FPXimportRaids: function(save) { var linklist = document.FPXRaidSpamForm.FPXRaidSpamInput.value; if (linklist.length > 10) { save = typeof save == 'undefined' ? true : save; console.log('[SRDotDX] Import started'); SRDotDX.gui.Importing = true; document.FPXRaidSpamForm.FPXRaidSpamInput.value = ''; var link, tagged = false, haspb = false, imct = 0; var total = document.getElementById('raid_list').childNodes.length; var patt = new RegExp('http...www.kongregate.com.games.5thPlanetGames.dawn.of.the.dragons.[\\w\\s\\d_=&]+[^,]', 'ig'); if (linklist.indexOf('!!OBJECT_IMPORT!!') > -1) { var objs = linklist.split(';'), obj; if (SRDotDX.config.confirmForLargePaste && SRDotDX.gui.importingPastebin && objs.length > SRDotDX.config.confirmPasteSize && !confirm('This pastebin import exceeds ' + SRDotDX.config.confirmPasteSize + ' raids. Continue with import?')) return false; console.log('[SRDotDX] Objects importing ' + objs.length); tagged = true; while (imct < objs.length) { obj = objs[imct].split(','); if (obj.length == 4) { console.log('[SRDotDX] Object importing ' + imct + ': ' + obj[2] + ' : ' + obj[1] + ' : ' + obj[3]); SRDotDX.getRaidDetails(obj[0], obj[2], SRDotDX.config.markImportedVisited, obj[1], obj[3]); } imct++; } } if (!tagged) { if(SRDotDX.config.confirmForLargePaste && SRDotDX.gui.importingPastebin && linklist.split(',').length > SRDotDX.config.confirmPasteSize && !confirm('This pastebin import exceeds '+SRDotDX.config.confirmPasteSize+' raids. Continue with import?')) return false; while(link = patt.exec(linklist)) { imct++; SRDotDX.getRaidDetails(link+'', 'PasteBin', SRDotDX.config.markImportedVisited); } } var pbpatt = new RegExp('http...pastebin.com.\\w{8}', 'ig'); while (link = pbpatt.exec(linklist)) { haspb = true; SRDotDX.request.pasteImport(link) } if (!haspb) { var diff = document.getElementById('raid_list').childNodes.length - total; SRDotDX.gui.doStatusOutput('Import complete, ' + diff + ' of ' + imct + ' new raids'); } SRDotDX.gui.Importing = false; if (save) setTimeout(SRDotDX.config.save, 250, false); return {totalnew: diff, total: imct} } return false; }, deleteRaid: function(ele) { var id = ele.getAttribute('raidid'); SRDotDX.gui.deleteRaidFromDB(id); ele.parentNode.removeChild(ele); }, deleteRaidFromDB: function(id) { var chat = document.getElementsByClassName('chat_message_window'), p; for (var c=0; c -1) p[i].parentNode.removeChild(p[i]); } //SRDotDX.gui.toggleRaid('nuked', id, true); if (SRDotDX.config.raidList[id]) delete SRDotDX.config.raidList[id]; }, FPXdeleteAllRaids: function() { if (!SRDotDX.config.confirmDeletes || confirm('This will delete all ' + SRDotDX.config.raidList.length + ' raids stored. Continue? \n (This message can be disabled on the options tab.)')) { for (var id in SRDotDX.config.raidList) if (SRDotDX.config.raidList[id]) delete SRDotDX.config.raidList[id]; var raidlistDIV = document.getElementById('raid_list'); while (raidlistDIV.hasChildNodes()) raidlistDIV.removeChild(raidlistDIV.lastChild); localStorage.removeItem('raidList'); SRDotDX.gui.updateMessage(); console.log('[SRDotDX] Delete all raids finished.'); } }, chatCommand: function(text) { var elems = document.getElementsByClassName('chat_input'); var txt = [], i = elems.length; while (i--) { txt[i] = elems[i].value; elems[i].value = text } holodeck.activeDialogue().sendInput(); i = txt.length; while (i--) elems[i].value = txt[i]; }, FPXdoWork: function(param1, whisper) { var elems = document.getElementsByClassName('chat_input'); if (whisper && whisper != '') param1 = '/w ' + whisper + ' ' + param1; var txt = [], i = elems.length; while (i--) { txt[i] = elems[i].value; elems[i].value = param1 } holodeck.activeDialogue().sendInput(); i = txt.length; while (i--) elems[i].value = txt[i]; }, FPXformatRaidOutput: function(url) { var pre = ''; //user && room ? '['+room+'|'+user+'] ' : ''; if (!SRDotDX.config.formatLinkOutput) return pre + url; var r = SRDotDX.getRaidDetailsBase(url); return pre + r.shortname + ' ' + r.diffShortText + ' ' + url; }, isPosting: false, FPXTimerArray: [], FPXStopPosting: function() { SRDotDX.gui.endSpammingRaids(); console.log('[DotDX] Spamming raids to chat... [cancelled]'); SRDotDX.echo('Raid posting cancelled'); }, endSpammingRaids: function() { var i = SRDotDX.gui.FPXTimerArray.length; while (i--) clearTimeout(SRDotDX.gui.FPXTimerArray[i]); SRDotDX.gui.isPosting = false; document.getElementById('PostRaidsButton').value = 'Post'; document.getElementById('dotdx_share_post_button').value = 'Post Links to Chat'; document.getElementById('dotdx_share_post_button').value = 'Friend Share links'; SRDotDX.gui.doStatusOutput('Posting raids finished'); SRDotDX.gui.FPXTimerArray = []; SRDotDX.config.save(false); }, prepareSpammingRaids: function() { SRDotDX.gui.isPosting = true; document.getElementById('PostRaidsButton').value = 'Cancel'; document.getElementById('dotdx_share_post_button').value = 'Cancel'; document.getElementById('dotdx_friend_post_button').value = 'Cancel'; SRDotDX.gui.doStatusOutput('Posting raids started', false); }, spamRaidsToFriends: function() { SRDotDX.gui.prepareSpammingRaids(); var userList = [[],[],[],[],[]], i; for (var user in SRDotDX.config.friendUsers) { for(i=0;i<5;i++) if(SRDotDX.config.friendUsers[user][i]) userList[i].push(user); } console.log('[DotDX] Spamming raids to friends... [started]'); try { var linkList = document.getElementById('DotDX_raidsToSpam').value; if (linkList.length > 10) { console.log('[DotDX] [If length went trough]'); document.getElementById('DotDX_raidsToSpam').value = ''; var patt = new RegExp('http...www.kongregate.com.games.5thPlanetGames.dawn.of.the.dragons.[\\w\\s\\d_=&]+[^,]', 'ig'); var link, ct = 0, sel = 4, r, rs, u; i=0; var timer = 500, ttw = 3050; var total = linkList.split(patt).length-1; console.log('[DotDX] [Just before while]'); while((link = patt.exec(linkList)) && SRDotDX.gui.isPosting) { console.log('[DotDX] [After while]'); r = SRDotDX.util.getRaidFromUrl(link); rs = SRDotDX.raids[r.boss].size; if (r.boss == 'serpina') sel = 0; else if (rs < 26) sel = 1; else if (rs == 50) sel = 2; else if (rs == 100) sel = 3; console.log('[DotDX] [If before user for]'); if (userList[sel].length > 0) { for(u=0;u 10) { document.getElementById('DotDX_raidsToSpam').value = ''; var patt = new RegExp('http...www.kongregate.com.games.5thPlanetGames.dawn.of.the.dragons.[\\w\\s\\d_=&]+[^,]', 'ig'); var link, ct = 0, i=0; var timer = 500, ttw = 3050; var total = linkList.split(patt).length-1; while((link = patt.exec(linkList)) && SRDotDX.gui.isPosting) { ( function(p1) { return SRDotDX.gui.FPXTimerArray[i] = setTimeout(function() { if (!SRDotDX.gui.isPosting) return; SRDotDX.gui.FPXdoWork(SRDotDX.gui.FPXformatRaidOutput(p1), SRDotDX.config.whisperTo); ++ct; SRDotDX.gui.postingMessage(ct, total); },timer); })(link); timer += ttw; i++; } } SRDotDX.gui.FPXTimerArray[SRDotDX.gui.FPXTimerArray.length] = setTimeout(function() { SRDotDX.gui.endSpammingRaids(); console.log('[DotDX] Spamming raids to chat... [stopped]'); }, timer); } catch(ex) { console.log('[DotDX] Spamming raids to chat... [error]: ' + ex) } }, quickImportAndJoin: function(joinStr,imp) { SRDotDX.gui.updateFilterTxt(joinStr,false,true); SRDotDX.request.quickBtnLock = false; if (imp) SRDotDX.request.joinAfterImport = true, SRDotDX.gui.importFromServer(); else SRDotDX.gui.joinSelectedRaids(); }, importFromServer: function() { var h = Math.ceil(((new Date).getTime() - SRDotDX.config.lastImported)/3600000); SRDotDX.echo('Importing raids from server'); SRDotDX.request.raids(false,h); }, importingPastebin: false, FPXSortRaids: function() { var raidArray = [], i, sortFunc; var selectedSort = document.getElementById('FPXRaidSortSelection').value; var selectedDir = document.getElementById('FPXRaidSortDirection').value; var raidlistDIV = document.getElementById('raid_list'); var raidList = raidlistDIV.childNodes; console.log('[SRDotDX] Sorting started ' + selectedSort + ' : ' + selectedDir); i = raidList.length; while (i--) raidArray.push( SRDotDX.config.raidList[raidList[i].getAttribute('raidid')] ); switch(selectedSort) { case 'Id': if (selectedDir == 'asc') sortFunc = function(a,b) { if (!(typeof a.id === 'undefined' || typeof b.id === 'undefined') && a.id > b.id) return -1; return 1; }; else sortFunc = function(a,b) { if (!(typeof a.id === 'undefined' || typeof b.id === 'undefined') && a.id < b.id) return -1; return 1; }; break; case 'Time': if (selectedDir == 'asc') sortFunc = function(a,b) { if (!(typeof a.timeStamp === 'undefined' || typeof b.timeStamp === 'undefined') && a.timeStamp > b.timeStamp) return -1; return 1; }; else sortFunc = function(a,b) { if (!(typeof a.timeStamp === 'undefined' || typeof b.timeStamp === 'undefined') && a.timeStamp < b.timeStamp) return -1; return 1; }; break; case 'Name': if (selectedDir == 'asc') sortFunc = function(a,b) { a = SRDotDX.raids[a.boss]; b = SRDotDX.raids[b.boss]; //console.log(a + ' : ' + b + ' : ' + (typeof a === 'undefined') + ' : ' + (typeof b === 'undefined')); if (!(typeof a === 'undefined' || typeof b === 'undefined') && a.name > b.name) return -1; return 1; }; else sortFunc = function(a,b) { a = SRDotDX.raids[a.boss]; b = SRDotDX.raids[b.boss]; if (!(typeof a === 'undefined' || typeof b === 'undefined') && a.name < b.name) return -1; return 1; }; break; case 'Diff': if (selectedDir == 'asc') sortFunc = function(a,b) { if (a.diff > b.diff) return -1; return 1 }; else sortFunc = function(a,b) { if (a.diff < b.diff) return -1; return 1 }; break; } try { raidArray.sort(sortFunc) } catch(e) { console.log('[SRDotDX] Sorting error: ' + e); return } raidlistDIV = document.getElementById('raid_list'); while (raidlistDIV.hasChildNodes()) raidlistDIV.removeChild(raidlistDIV.lastChild); i = raidArray.length; while (i--) SRDotDX.gui.addRaid(raidArray[i]); //SRDotDX.gui.FPXFilterRaidListByName(); console.log('[SRDotDX] Sorting finished'); }, GetRaid: function(id) { if (isNumber(id)) { var raidList = document.getElementById('raid_list').childNodes; var i = raidList.length, item; while (i--) { item = raidList[i]; if (item.getAttribute('raidid') == id) { var raid = JSON.parse(JSON.stringify(SRDotDX.config.raidList[id])); raid.ele = item; return raid } } } return null }, joinRaidList: [], postRaidList: [], updateFilterTimeout: null, filterSearchStringC: "", filterSearchStringR: "", updateFilterContext: true, includeDiff: function(str,dv) { var diff = isNaN(parseInt(dv)) ? ({'n':1,'h':2,'l':3,'nm':4,'nnm':0})[dv] || 5 : parseInt(dv); var out = ""; var string = str.toString(); switch (diff) { case 0: out = string.replace(/,|$/g,'_1,') + string.replace(/,|$/g,'_4,'); break; case 1: case 2: case 3: case 4: out = string.replace(/,|$/g,'_' + diff + ','); break; default: for (var i=1; i<=4; i++) out += string.replace(/,|$/g,'_' + i + ','); break; } return out.slice(0,-1); }, updateFilterTxt: function(txt,fromRT,quick) { clearTimeout(this.updateFilterTimeout); var foundRaids = [], field, rf, i; if (txt != "") { var searchArray = txt.split(/\s?\|\s?|\sor\s|\s?,\s?/ig); console.log('[DotDX] Pattern split: ' + searchArray); for (i=0; i= 0) foundRaids.push(this.includeDiff(key,field[1])); } } } } } var finalSearchString = foundRaids.length == 0 ? "" : "," + foundRaids.toString() + ","; console.log('[DotDX] Raids to join from ' + (fromRT?'Raids':'Chat') + ' tab: ' + foundRaids); if (fromRT) { SRDotDX.config.lastFilter[SRDotDX.config.serverMode-1] = txt; SRDotDX.config.filterSearchStringR = finalSearchString; } else if (quick) { SRDotDX.request.filterSearchStringT = finalSearchString; } else { var filterInputs = document.getElementsByClassName('dotdx_chat_filter'); for (i=0; i= 0) ) ) //try { SRDotDX.gui.joinRaidList.push(JSON.parse(JSON.stringify(r))) } catch(ex){} try { SRDotDX.gui.joinRaidList.push(r) } catch(ex){} } if(!SRDotDX.gui.joining) SRDotDX.gui.updateMessage(), SRDotDX.gui.refreshRaidList(); } }, pushRaidToJoinQueue: function(id) { var searchString = SRDotDX.gui.updateFilterContext && SRDotDX.config.chatFilterString != "" ? SRDotDX.config.filterSearchStringC : SRDotDX.config.filterSearchStringR; var r, filter = SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML; r = SRDotDX.config.raidList[id]; if( SRDotDX.config.fltShowAll || ( (SRDotDX.config.fltShowNuked ? r.nuked : !r.nuked && (SRDotDX.config.fltIncVis || !r.visited)) && filter.indexOf('fltList_' + r.boss + '_' + (r.diff-1)) < 0 && (searchString == "" || searchString.indexOf("," + r.boss + "_" + r.diff + ",") >= 0) ) ) try { SRDotDX.gui.joinRaidList.push(JSON.parse(JSON.stringify(r))) } catch(ex){} }, joining: false, joinRaidIndex: 0, joinRaidComplete: 0, joinRaidSuccessful: 0, joinRaidDead: 0, joinRaidInvalid: 0, joinSelectedRaids: function (fromChat) { if (!this.joining) { this.joining = true; this.joinRaidIndex = 0; this.joinRaidComplete = 0; this.joinRaidSuccessful = 0; this.joinRaidDead = 0; this.joinRaidInvalid = 0; if (SRDotDX.gui.joinRaidList.length == 0) { this.joinFinish(true); return } SRDotDX.gui.cHTML("#AutoJoinVisibleButton").ele().value = 'Cancel'; SRDotDX.gui.cHTML("#AutoImpJoinVisibleButton").ele().value = 'Cancel'; console.log('[DotDX] Hyperfast joining ' + SRDotDX.gui.joinRaidList.length + ' raids'); while(SRDotDX.gui.joinRaidIndex < Math.min(30,SRDotDX.gui.joinRaidList.length)) SRDotDX.request.joinRaid(SRDotDX.gui.joinRaidList[SRDotDX.gui.joinRaidIndex++]); } else if (!fromChat) this.joinFinish(); }, joinFinish: function(recalc){ this.joining = false; SRDotDX.request.quickBtnLock = true; SRDotDX.gui.cHTML("#AutoJoinVisibleButton").ele().value = 'Join'; SRDotDX.gui.cHTML("#AutoImpJoinVisibleButton").ele().value = 'Import & Join'; //this.joinRaidList = []; if (recalc) this.selectRaidsToJoin('joining finish'); }, refreshFriends: function() { var content="", ff, i= 0, f=false, friend; var parentDiv = SRDotDX.gui.cHTML('#FPXfsOptions'); parentDiv.html('User
',true); for (friend in SRDotDX.config.friendUsers) { ff = SRDotDX.config.friendUsers[friend]; content += (f?'
':'')+'' + friend + '' + ''+ ''+ ''+ ''+ ''; f=true; } parentDiv.html('
'+content+'
',false); for (friend in SRDotDX.config.friendUsers) { ff = SRDotDX.config.friendUsers[friend]; for (i=0; i<5; i++) SRDotDX.gui.cHTML('#fs:' + friend + ':' + i).on('click',function(e){SRDotDX.gui.fsEleClick(e)}).ele().checked = ff[i]; } }, DeleteRaids: function () { if (!this.joining) { console.log('[DotDX] Erasing visible raids ...'); var rn = SRDotDX.gui.joinRaidList.length; if (rn > 0 && (!SRDotDX.config.confirmDeletes || confirm('This will delete ' + rn + ' raids. Continue? \n (This message can be disabled on the options tab.)'))) { var i, tot = 0; for (i=0; i -1) e[i].className = e[i].className.replace(/ active$/g,''); (document.getElementById('FPXShareTab').parentNode).className += ' active'; } }, BeginDeletingExpiredUnvisitedRaids: function() { SRDotDX.gui.DeleteExpiredUnvisitedRaids(); setInterval('SRDotDX.gui.DeleteExpiredUnvisitedRaids();',600000) }, DeleteExpiredUnvisitedRaids: function() { console.log('[DotDX] Deleting nuked amd old unvisited raids'); var ct, item, i; if (SRDotDX.config.unvisitedRaidPruningMode <= 2 && SRDotDX.config.unvisitedRaidPruningMode >= 0) { //var raidList = document.getElementById('raid_list').childNodes; var pruneTime = new Date().getTime() / 1000; var raidid, raid, raidInfo, pruneTimer; ct = 0; for (raidid in SRDotDX.config.raidList) { raid = SRDotDX.config.raidList[raidid]; if (SRDotDX.raids[raid.boss]) { if (!raid.visited || raid.nuked) { raidInfo = SRDotDX.raids[raid.boss]; pruneTimer = SRDotDX.raidSizes[raidInfo.size].pruneTimers[SRDotDX.config.unvisitedRaidPruningMode]; if (raid.nuked) pruneTimer = pruneTimer / 2; //double time nuked pruning if ((pruneTime - raid.timeStamp) >= pruneTimer) { SRDotDX.gui.deleteRaidFromDB(raidid); ct++ } } } else { SRDotDX.gui.deleteRaidFromDB(raidid); ct++ } } if (ct > 0) SRDotDX.gui.doStatusOutput(ct + ' old unvisited raids pruned.'); console.log('[DotDX] Number of raids pruned: ' + ct); SRDotDX.gui.selectRaidsToJoin('prune'); } }, switchBot: function() { //console.log('[SRDotDX] Bot button clicked'); var chkBot = document.getElementById('SRDotDX_options_hideBotLinks'); chkBot.checked = !SRDotDX.config.hideBotLinks; SRDotDX.config.hideBotLinks = chkBot.checked; SRDotDX.gui.cHTML('#SRDotDX_botClass').html('.bot {display: ' + (chkBot.checked ? 'none !important' : 'block') + '}', true); SRDotDX.gui.scrollChat(); }, scrollChat: function(num) { var els = document.getElementsByClassName('chat_message_window'); var i = num?num:0; if (num) els[num].scrollTop = els[num].scrollHeight; else { i=els.length; while (i--) els[i].scrollTop = els[i].scrollHeight;} }, getScrollbarWidth: function() { var scrollDiv = SRDotDX.gui.cHTML('div').set({id:"DotDX_scrollMeasure",style:"width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px;"}).attach('to',document.body).ele(); var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; document.body.removeChild(document.getElementById('DotDX_scrollMeasure')); return scrollbarWidth; }, applyFontSize: function(num) { var n = typeof num == 'number' ? num : SRDotDX.config.fontNum, s1, s2, mod = ''; console.log("[DotDX] apply font size with id: "+n); SRDotDX.config.fontNum = n; switch (n) { case 1: s1 = 12; s2 = 10; mod = '; vertical-align: top;'; break; case 2: s1 = 10; s2 = 8; break; default: s1 = 11; s2 = 9; break; } SRDotDX.gui.cHTML('#DotDX_fontClass').html('\ #kong_game_ui div.chat_message_window p span.message, #kong_game_ui div.chat_message_window p span.separator, #kong_game_ui div.chat_message_window p span.username {font-size: '+s1+'px}\ #kong_game_ui div.chat_message_window p span.room, #kong_game_ui div.chat_message_window p span.timestamp {font-size: '+s2+'px'+mod+'}\ ',true); }, applyTabs: function() { document.getElementById('lots_tab').firstChild.innerHTML = SRDotDX.config.dotdxTabName; var elems = ["#DotDX_Dummy"]; if(SRDotDX.config.hideGameTab) elems.push("#kong_game_ui li#game_tab"); if(SRDotDX.config.hideAccTab) elems.push("#kong_game_ui li#accomplishments_tab"); SRDotDX.gui.cHTML('#DotDX_tabs').html(elems.join(", ") + ' { display: none !important }',true); }, applyTheme: function(num) { var n = typeof num == 'number' ? num : SRDotDX.config.themeNum; console.log("[DotDX] apply theme with id: "+n); var c, check, radio; SRDotDX.config.themeNum = n; switch (n) { case 1: check = 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAcCAYAAABoMT8aAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAJxSURBVEhL7VRLaxNRGL1QEIVs9AckDamZZPLOvDMzicZEjBltY5qnisFFKbgRVLoQEf0JVkShTUVQCl2oG9GNS0FcuXDpD3DrxneP3x0mfdimTXHjwoHDMN/cc+a73z1nmCAImVgs9joej39NJBLYAau07kM0Gu0EAoH9bHBR8W02m4WqqtB1fSg0TYMkSUgmkx+JI3l0xujLvzg5l8vBsizYtr0FvG6apiuSSqV4J8c8OmO8Pf4Fviifz6NQKGwLLmQYBtLpNEig5NHXBfiC7YgDcPH/ArsI/NUpbPTBMAx8wAWIsy5AxW8DJ/IFw8DfcyfKsvyTOi56dMYcx1nhWyCL/un9LeAC5XL5Xa1WEz06Y61Wa5zwst1uf+l0OtgBq7TmfbPZrDYajTGPzvacRup0jpAURdHnChDxzahpNNMZXCsWMJ+NfDoz7r/l8/n2cYEfo6RRz0i4YlpYadTxYrKClYOHPueCwXMj+SCXlXBZ1vG828SSU8Mj8sNsaAKq3x/c5ES7cASWTaahOydywbwk46qi41Wvi351CovUxUw48l0WonOhUGhsTcCkF8clBTOVMkqyCps/0/0GiTw728YikR9YeVwSIjAPR6/Tb+2AO0QuwAdUVXXcrVaozRbun3ZwPiPjdqmE5cY0+tT2gmFiNhKBFouDTmCzlblAMZPFPA2zf3IST2p1PO02sDxdd8lLioZeWIBFpzA0TIaqoRwWcS+Zcvf68BQRnSk8VhX0JsKwaBa7plHXdBwVRNxJpdE/4WBBN3CR9mzxmdCQR0qjQaSKGMNNql+g/ZqK6iZxb2nkJAqOIStrtX81jYz9Bt6mjYTW51PyAAAAAElFTkSuQmCC'; radio = 'iVBORw0KGgoAAAANSUhEUgAAAA0AAAAaCAYAAABsONZfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAI+SURBVDhPxZJNiBJhGMeHTgXdOrR0CUFdCTR1VscZW3W+Vs0P/JhZv2fVERSLukRBCEUHCRb6gKgg6tQlunrpVHSOztG9aLtsHQxcyv8+E22HcldvO/DjfWGe//M87/P8GfqO6Lp+PJ/P++m82Wg03vV6vXG/3//ZarW2isXiiP5dyGazvkwmc1LTtGPMH0GKgt92u90dEuBfOp3Oj0Kh8DKVSp2n8zRDgrPlcvkNZf1lmib2w/pPlUZUUWHocq1er08Mw8A8KpXKWJKkoSV6TZWwKCR6z6TT6S1qEYuSSCTGTDwe/04PxKKoqrrDRCKRD4qiYFFCodAnRhCEZyScRqNRzMOK83g8I0YUxUowGNwmMebhdru/yrI8YOhhZ3ief+z3+yeBQAD74fV6J9TaUxpckcnlcidoGDGWZZ9Tpm8+n29KYA8Knjqdzi/UzRMSVCmeZajXozT/UzSZVcp0dXl5+ZXD4fhst9u3bTbbR5fL9YJ2c92qYAnIdkuHaNh2s4lmrYYWYW4YMNvtgw1bL5Vgrq3hYiSKy6KIS5IIs6TBaDRmG7ak69igjQ84DnfOreIeLXOT53FFFFBb12cbNpNMwqQF3o3F8FBV/zLkWBhaEYVZho1LMprBEO7T+Yha3GOTW0FrXQMln2HYmIhqgMNtas2qYAkeyDJucT5UCzkr+H/DEpAFHgbL4kZIwJDEgxU/upk4EpTgAMPyiNCZVFQUs1lo6QwUSUI4HJ5vWEoCjqbIBbnf98MyrL60C6YGOtWmdTvcAAAAAElFTkSuQmCC'; c = ['#333','#ddd','#404040','#fff','#792c2c','#333','#101010','0 0 5px #202020','#333','0 0 10px #000', '#ccc','#eee','0 0 4px #555','#000','#444','0 0 5px #888','#fff','#792c2c','0 0 12px #fff','#fff', '#000','top,#aa4141,#5c2828','0 0 5px #aaa;','#555','#000','0 -2px 6px -3px #000','#fff','0 0 4px #000;','#ccc','#ddd', 'none','#000','0 0 5px 1px #222','#444','#fff','#000','#333','0 0 8px #000','#ccc','#222', '#111','#fff','0 0 4px #111','#333','#ddd','#111','#444','#3a3a3a','#111','none', '#111','none','#111','none','#111','none','#444','#60cc60','#60cc60','0 0 5px #00aa1a', '#d6c96a','#d6c96a','0 0 5px #7e7400','#e47070','#e47070','0 0 5px #aa0000','#c28ee6','#c28ee6','0 0 5px #9000ff','#000', 'top,#303030,#302727','#000','top,#2a2a2a,#492c2c','#78bcfa','0 0 4px #000','#6dc97c','#ec6666','#f8b60d','0 0 5px #000','#ccc', '#fff','0 0 6px #999','#aaa','#bbb','#dfa160','#ffb261','0 0 4px #9b5812','#000','#404040','0 0 6px #111', '#eee','#000','0 0 3px #101010','0 0 5px #000','top,#303030,#444','#1a1a1a','#000','0 0 8px #fff','#ddd','#101010', '0 0 3px #000','0 0 5px #202020','top,#3a3a3a,#555','#eee','#000','0 0 5px #000','0 0 10px #111','top,#303030,#404040','','', '','top,#303030,#406785','','','','top,#303030,#306638','','','','top,#303030,#693434', '','','','top,#303030,#887E35','#eaeaea','0 0 5px #000','#e0e0e0','#101010','0 0 5px #000','0 0 5px #202020', 'top,#303030,#444','','','top,#2a2a2a,#222','#eee','#111','0 0 5px #000','0 0 4px #303030','top,#333,#555','0 0 6px #101010', 'top,#2a2a2a,#404040','#eee','#1a1a1a','0 0 5px #000','0 0 5px #222','top,#333,#4a4a4a','0 0 6px #111','','top, #2a2a2a, #333','0 0 6px #111', '','top,#2a2a2a,#426B44','0 0 6px #111','','top,#2a2a2a,#40668d','0 0 6px #111','','top,#2a2a2a,#612525','#e0e0e0','#101010', '0 0 5px #000','0 0 8px #101010','top,#303030,#723434','top,#202020,#4d2424','#eee','0 0 4px #000','#e0e0e0','#888','top,#444,#555','#eee', '#000','0 0 5px #000','0 0 6px #111','left,#303030,#303030','','#aaa','#000','0 0 5px #000','top,#444,#444','#606060', '#101010','#e5e5e5','#f5f5f5','0 0 6px #c0c0c0','#eee','#d83737','0 0 3px #000','top,#404040,#556d52','top,#404040,#746c56','top,#404040,#664040', 'top,#404040,#604c70','#00bb00','#dbb32e','#d13c3c','#d16ad1','#eee','0 0 6px #000','#101010','0 0 5px #000','top,#2a2a2a,#3a3a3a', '#555','#e0e0e0','0 0 5px #000','#f0f0f0','0 0 8px #000','#e0e0e0','0 0 5px #000','#000','#3a3a3a','#303030', '#000','#202020','','#552727','#686868','#303030','#c0c0c0','','#111','#222', '#e0e0e0','#fff','0 0 6px #999']; break; default: check = 'iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAC4SURBVDhPnZNRCsQgDAW9pPfxuCKICCIiyC62RPIksnEDU2zMlH7kGefc5xYzax5uas5ba19xjKEGxN67GhBba2pArLWqAbGUogbEnLMaEFNKakCMMaoBMYSgBkTvvRoQb3nEv0v64i/Wr94UiFIKToAopYDDZ0CUUkDMez4DIt/8PQkE7y2Rbz6905nfU3+JfPN3eDJoZon79hO8z++XKCVg7xEgSik4AaKUghMg3vKI83GLMcZ8AZMOnRQ6c3RxAAAAAElFTkSuQmCC'; radio = 'iVBORw0KGgoAAAANSUhEUgAAAA0AAAAaCAYAAABsONZfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAFpSURBVDhP1VJNi4IAEPV3durU1V/QJTAIT3WQopvRD4ggCTKrQ8d+gwkRlB+RKBHhW96sxUrrurdlBx7DvHnjqPOUr3E+nzGbzdDr9dBsNiWzJp9LirFYLNDpdLDdbnE6ncBgZk2e/Vz6GavVCsPhEEmSIMuyN5BnnzoZCIIA7XYbURTh8XiUgn3qqFcsy8Jms8H9fq8EddQr3W4Xh8MBt9utEtRRr2iahjAM5b2rQB31smm/3yOO40pQJ5t4h+VyicvlUgnqqJeDcqXnebK+DOxT9zo0/3+/38fxeITv+28gz/7rTs+Yz+fQdV1ewXVdcQMza/Ls59Ji8ImTyURsQ+8xsyafS97jnxh2vV5jPB5LrjQs/dVqtVCr1VCv1yWzJl9qWMdx0Gg0oKrqC6xt2y43rGmahYEnRqNRuWG5/rsh8qWGZcMwjMLAYDAQ/kfD8oN3ux2m06lk1r8y7PV6RZqmkv/SsIryAXc40Mw81bSxAAAAAElFTkSuQmCC'; c = ['#404040','#303030','#e0e0e0','#000','#f0f0f0','#ccc','#6a6a6a','0 0 4px #707070','#ddd','0 0 5px #333', '#666','#222','0 0 3px #ccc','#aaa','#e6e6e6','0 0 5px #888','#000','#f5f5f5','0 0 5px #999','#000', '#888','top,#fff,#ddd','0 0 5px #555;','#f6f6f6','#888','0 -2px 6px -4px #444','#222','','#777','#888', 'underline','#888','0 0 6px #999','#fff','#000','#777','#fff','0 0 8px #999','#4b4b4b','#f0f0f0', '#bbb','#333','0 0 4px #ddd','#fff','#222','#d0d0d0','#fff','#f7f7f7','#8ab389','top,#cbe7c4,#f3faf2', '#adad68','top,#f7f0c8,#fcfbf8','#b18780','top,#f3d7d1,#FCF7F7','#a99abb','top,#ddd4e2,#f4f0f7','#fff','','','0 0 5px #aaa', '','','0 0 5px #aaa','','','0 0 5px #aaa','','','0 0 5px #aaa','#c0c0c0', 'top,#f0f0f0,#fff','#a1b4be','top,#dce8f1,#eff4f7','#276594','none','#267422','#973131','#085088','none','#444', '#000','0 0 6px #888','#666','#666','#946a3d','#946a3d','0 0 4px #f5Cc68Aa','#777','#eee','0 0 7px #777', '#000','#606060','0 0 3px #707070','0 0 4px #ccc','top,#fff,#ddd','#808080','#707070','0 0 4px #909090','#111','#707070', '0 0 5px #aaa','0 0 5px #808080','top,#f5f5f5,#dadada','#fff','#444','0 0 10px #eee','0 0 7px #222','top,#999,#555','#000','0 0 10px #fff', '0 0 7px #1c3a61','top,#dcf0fd,#6794b2','#000','0 0 10px #fff','0 0 7px #3d6425','top,#effde5,#618d4f','#000','0 0 10px #fff','0 0 7px #412222','top,#ffefef,#aa5858', '#000','0 0 10px #fff','0 0 7px #807823','top,#fffbe0,#c9b41d','#101010','0 0 8px #fff','#333','#707070','0 0 6px #999','0 0 5px #808080', 'top,#f5f5f5,#dadada','','','top,#f5f5f5,#fff','#222','#999','0 0 4px #ccc','0 0 4px #ccc','top,#ccc,#eee','0 0 4px #bbb', 'top,#ccc,#ddd','#444','#aaa','','0 0 3px #ddd','top, #eee, #fff','0 0 5px #bbb','0 0 3px #bbb','top,#fff,#ccc','0 0 5px #a7ca9c', '0 0 3px #bbb','top, #fff, #b9daaf','0 0 5px #a9d3ff','0 0 3px #bbb','top, #fff, #a4c8ee','0 0 5px #ffbaba','0 0 3px #bbb','top,#fff,#f0a4a4','#222','#aaa', '','0 0 4px -1px #aaa','top,#fff,#d1dfee','top, #dfe8f1,#fff','#333','','#bbb','#ccc','top,#eee,#fff','#444', '#aaa','1px 1px 2px #ddd','0 0 4px #ccc','left,#fff,#eee','0 0 3px #ddd','#aaa','#aaa','0 0 3px #ccc','top,#f5f5f5,#f6f6f6','#fff', '#e0e0e0','#111','#111','0 0 8px #777','#000','#bd0000','0 0 2px #ff8e8e','top,#d8ecd3,#f5f5f5','top,#faf4d2,#f5f5f5','top,#fae4df,#f5f5f5', 'top,#e9dcf3,#f5f5f5','#00bb00','#dbb32e','#d13c3c','#d16ad1','#000','0 0 6px #808080','#808080','0 0 5px #aaa','top,#d0d0d0,#f0f0f0', '#ccc','#222','','','0 0 4px #ccc','','','#bbb','#fff','', '#bbb','#efefef','#fafafa','#eff4f9','#5f9ea0','#eff4f9','#606060','none','#202020','#ddd', '#e0e0e0','#fff','0 0 6px #999']; break; } SRDotDX.gui.cHTML('#DotDX_themeClass').html('\ #maingame, #quicklinks li, div.game_page_wrap, div#kong_game_ui, #kong_game_ui .tabpane {background-color:'+c[0]+' !important;}\ #kong_game_ui ul.main_tabs li.tab a, div#serverButton {color:'+c[1]+'; background-color:'+c[2]+'; border-color:'+c[95]+';}\ #kong_game_ui ul.main_tabs li.tab a.active, div#serverButton:hover {color:'+c[3]+'; background-color:'+c[4]+'; border-color:'+c[96]+'; text-shadow:'+c[97]+';}\ #kong_game_ui div#chat_tab_pane, div#dotdx_sidebar_container, #kong_game_ui div#lots_tab_pane, #kong_game_ui ul.main_tabs {background-color:'+c[5]+' !important;}\ #kong_game_ui div#chat_window, #kong_game_ui div#lots_tab_pane div#dotdx_shadow_wrapper {border-color:'+c[6]+'; box-shadow:'+c[7]+';}\ #kong_game_ui div#chat_window_header, #kong_game_ui div#lots_tab_pane div#dotdx_shadow_wrapper {background-color:'+c[8]+';}\ #kong_game_ui div#chat_window_header {box-shadow:'+c[9]+';}\ #kong_game_ui div#chat_window_header div.dotdx_chat_overlay {border-color:'+c[175]+';}\ #kong_game_ui div#chat_window_header div.room_name_container, #kong_game_ui div#dotdx_status_div, #kong_game_ui .panel_handle a, #kong_game_ui #accomplishments_pane_title {color:'+c[10]+';}\ #kong_game_ui div#chat_window_header div.room_name_container .room_name, #kong_game_ui div#chat_window_header div.dotdx_chat_overlay > span, #kong_game_ui div#dotdx_status_div span, #kong_game_ui div#chat_room_tabs div a, #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head {color:'+c[11]+'; text-shadow:'+c[12]+';}\ #kong_game_ui div#chat_window_header div.room_name_container, #kong_game_ui div#chat_room_tabs div a, #kong_game_ui div#dotdx_status_div, #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head {border-color:'+c[13]+'; background-color:'+c[14]+';}\ #kong_game_ui div#chat_room_tabs div a:hover, #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head:hover {text-shadow:'+c[15]+'}\ #kong_game_ui div#chat_room_tabs div.active a, #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_head {color:'+c[16]+'; background-color:'+c[17]+'; text-shadow:'+c[18]+';}\ #kong_game_ui div.chat_actions_container span.btn {color:'+c[19]+' !important; border-color:'+c[20]+'; background:-webkit-linear-gradient('+c[21]+'); background:-moz-linear-gradient('+c[21]+');}\ #kong_game_ui div.chat_actions_container span.kong_ico.btn_target:active {text-shadow:'+c[22]+';}\ #kong_game_ui div#chat_rooms_container div.chat_tabpane.users_in_room, #kong_game_ui div#lots_tab_pane ul li.tab div.tab_pane { background-color:'+c[23]+'; border-color:'+c[24]+';}\ #kong_game_ui div#chat_rooms_container div.chat_tabpane.users_in_room { box-shadow: inset '+c[25]+';}\ #kong_game_ui .user_row .username, #kong_game_ui div#lots_tab_pane ul { color:'+c[26]+'; text-shadow:'+c[27]+';}\ #kong_game_ui .user_row.away .username {color:'+c[28]+';}\ #kong_game_ui .user_row .guild-name {color:'+c[29]+';}\ #kong_game_ui .user_row .username {text-decoration:'+c[30]+';}\ #kong_game_ui div.chat_controls {border-color:'+c[31]+'; box-shadow:'+c[32]+';}\ #kong_game_ui div.chat_controls, #kong_game_ui textarea.chat_input {background-color:'+c[33]+';}\ #kong_game_ui textarea.chat_input {color:'+c[34]+';}\ #kong_game_ui div.chat_actions_container ul.chat_actions_list {border-color:'+c[35]+'; background-color:'+c[36]+'; box-shadow:'+c[37]+';}\ #kong_game_ui div.chat_actions_container ul.chat_actions_list li {border-color:'+c[36]+'; color:'+c[38]+';}\ #kong_game_ui div.chat_actions_container ul.chat_actions_list li:hover {background-color:'+c[39]+'; border-color:'+c[40]+'; color:'+c[41]+'; box-shadow:'+c[42]+';}\ #kong_game_ui div.chat_message_window {background-color:'+c[43]+'; color:'+c[44]+';}\ #kong_game_ui div.chat_message_window p {border-bottom-color:'+c[45]+'; border-top-color:'+c[46]+';}\ #kong_game_ui div.chat_message_window p.even {background-color:'+c[47]+';}\ #kong_game_ui div.chat_message_window p.SRDotDX_raid, #kong_game_ui div.chat_message_window p.whisper, #kong_game_ui div.chat_message_window p.script {border-top-color:'+c[56]+';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_1 {border-bottom-color:'+c[48]+'; background: -webkit-linear-gradient('+c[49]+'); background: -moz-linear-gradient('+c[49]+');} \ #kong_game_ui div.chat_message_window p.DotDX_diff_2 {border-bottom-color:'+c[50]+'; background: -webkit-linear-gradient('+c[51]+'); background: -moz-linear-gradient('+c[51]+');} \ #kong_game_ui div.chat_message_window p.DotDX_diff_3 {border-bottom-color:'+c[52]+'; background: -webkit-linear-gradient('+c[53]+'); background: -moz-linear-gradient('+c[53]+');} \ #kong_game_ui div.chat_message_window p.DotDX_diff_4 {border-bottom-color:'+c[54]+'; background: -webkit-linear-gradient('+c[55]+'); background: -moz-linear-gradient('+c[55]+');} \ #kong_game_ui div.chat_message_window p span.message a {color:'+c[79]+'}\ #kong_game_ui div.chat_message_window p span.message a:hover {color:'+c[80]+'; text-shadow:'+c[81]+';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_1 span.message a {color:'+c[57]+'; text-shadow:'+c[74]+';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_1 span.message a:hover {color:'+c[58]+'; text-shadow:'+c[59]+';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_2 span.message a {color:'+c[60]+'; text-shadow:'+c[74]+';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_2 span.message a:hover {color:'+c[61]+'; text-shadow:'+c[62]+';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_3 span.message a {color:'+c[63]+'; text-shadow:'+c[74]+';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_3 span.message a:hover {color:'+c[64]+'; text-shadow:'+c[65]+';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_4 span.message a {color:'+c[66]+'; text-shadow:'+c[74]+';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_4 span.message a:hover {color:'+c[67]+'; text-shadow:'+c[68]+';}\ #kong_game_ui div.chat_message_window p.script {border-bottom-color:'+c[69]+'; background: -webkit-linear-gradient('+c[70]+'); background: -moz-linear-gradient('+c[70]+');}\ #kong_game_ui div.chat_message_window p.whisper {border-bottom-color:'+c[71]+'; background: -webkit-linear-gradient('+c[72]+'); background: -moz-linear-gradient('+c[72]+'); }\ #kong_game_ui div.chat_message_window p span.username {color:'+c[73]+'; text-shadow:'+c[74]+';}\ #kong_game_ui div.chat_message_window p span.username.ign {color:'+c[75]+';}\ #kong_game_ui div.chat_message_window p.sent_whisper span.username, #kong_game_ui div.chat_message_window p span.username.is_self {color:'+c[76]+';}\ #kong_game_ui div.chat_message_window p.emote {color:'+c[77]+'; text-shadow:'+c[78]+';}\ #kong_game_ui div.chat_message_window p span.room {color:'+c[82]+';}\ #kong_game_ui div.chat_message_window p span.timestamp {color:'+c[83]+';}\ #kong_game_ui div.chat_message_window p span.message a.reply_link {color:'+c[79]+'}\ #kong_game_ui div.chat_message_window p span.message a.reply_link:hover {color:'+c[80]+'; text-shadow:'+c[81]+';}\ #kong_game_ui div.chat_message_window p span.message a.chat_link {color:'+c[84]+';}\ #kong_game_ui div.chat_message_window p span.message a.chat_link:hover {color:'+c[85]+'; text-shadow:'+c[86]+';}\ #kong_game_ui div.chat_message_window p > span.slider {border-color:'+c[87]+'; background:'+c[88]+'; box-shadow:'+c[89]+';}\ #kong_game_ui div#chat_raids_overlay {color:'+c[90]+'; border-color:'+c[91]+'; box-shadow:'+c[92]+'; text-shadow:'+c[93]+'; background: -webkit-linear-gradient('+c[94]+'); background: -moz-linear-gradient('+c[94]+');}\ div#dotdx_sidebar_container > button {color:'+c[98]+'; border-color:'+c[99]+'; text-shadow:'+c[100]+'; box-shadow:'+c[101]+'; background: -webkit-linear-gradient('+c[102]+'); background: -moz-linear-gradient('+c[102]+');}\ div#dotdx_sidebar_container > button:hover {color:'+c[103]+'; border-color:'+c[104]+'; text-shadow:'+c[105]+'; box-shadow:'+c[106]+'; background: -webkit-linear-gradient('+c[107]+'); background: -moz-linear-gradient('+c[107]+');}\ div#dotdx_sidebar_container > button.b:hover {color:'+c[108]+'; text-shadow:'+c[109]+'; box-shadow:'+c[110]+'; background: -webkit-linear-gradient('+c[111]+'); background: -moz-linear-gradient('+c[111]+');}\ div#dotdx_sidebar_container > button.g:hover {color:'+c[112]+'; text-shadow:'+c[113]+'; box-shadow:'+c[114]+'; background: -webkit-linear-gradient('+c[115]+'); background: -moz-linear-gradient('+c[115]+');}\ div#dotdx_sidebar_container > button.r:hover {color:'+c[116]+'; text-shadow:'+c[117]+'; box-shadow:'+c[118]+'; background: -webkit-linear-gradient('+c[119]+'); background: -moz-linear-gradient('+c[119]+');}\ div#dotdx_sidebar_container > button.y:hover {color:'+c[120]+'; text-shadow:'+c[121]+'; box-shadow:'+c[122]+'; background: -webkit-linear-gradient('+c[123]+'); background: -moz-linear-gradient('+c[123]+');}\ div#dotdx_sidebar_container > div.label {color:'+c[124]+'; text-shadow:'+c[125]+';}\ div#dotdx_sidebar_container > input[type=\"text\"] {color:'+c[126]+'; border-color:'+c[127]+'; text-shadow:'+c[128]+'; box-shadow:'+c[129]+'; background: -webkit-linear-gradient('+c[130]+'); background: -moz-linear-gradient('+c[130]+');}\ div#dotdx_sidebar_container > input[type=\"text\"]:hover, div#dotdx_sidebar_container > input[type=\"text\"]:focus {color:'+c[131]+'; border-color:'+c[132]+'; background: -webkit-linear-gradient('+c[133]+'); background: -moz-linear-gradient('+c[133]+');}\ #kong_game_ui div.tab_pane p.collapsingCategory {color:'+c[134]+'; border-color:'+c[135]+'; text-shadow:'+c[136]+'; box-shadow:'+c[137]+'; background: -webkit-linear-gradient('+c[138]+'); background: -moz-linear-gradient('+c[138]+');}\ #kong_game_ui div.tab_pane p.collapsingCategory:hover {box-shadow:'+c[139]+'; background: -webkit-linear-gradient('+c[140]+'); background: -moz-linear-gradient('+c[140]+');}\ #kong_game_ui div.tab_pane input[type=\"button\"] {color:'+c[141]+'; border-color:'+c[142]+'; text-shadow:'+c[143]+'; box-shadow:'+c[144]+'; background: -webkit-linear-gradient('+c[145]+'); background: -moz-linear-gradient('+c[145]+');} \ #kong_game_ui div.tab_pane input[type=\"button\"].generic:hover {box-shadow:'+c[146]+'; text-shadow:'+c[147]+'; background: -webkit-linear-gradient('+c[148]+'); background: -moz-linear-gradient('+c[148]+');}\ #kong_game_ui div.tab_pane input[type=\"button\"].green:hover, #kong_game_ui div.tab_pane input.landpmbuttonhigh {box-shadow:'+c[149]+'; text-shadow:'+c[150]+'; background: -webkit-linear-gradient('+c[151]+'); background: -moz-linear-gradient('+c[151]+');}\ #kong_game_ui div.tab_pane input[type=\"button\"].blue:hover {box-shadow:'+c[152]+'; text-shadow:'+c[153]+'; background: -webkit-linear-gradient('+c[154]+'); background: -moz-linear-gradient('+c[154]+');}\ #kong_game_ui div.tab_pane input[type=\"button\"].red:hover, #kong_game_ui div.tab_pane input[type=\"button\"][value=\"Cancel\"]:hover {box-shadow:'+c[155]+'; text-shadow:'+c[156]+'; background: -webkit-linear-gradient('+c[157]+'); background: -moz-linear-gradient('+c[157]+');}\ #kong_game_ui input#raidsBossFilter {color:'+c[158]+'; border-color:'+c[159]+'; text-shadow:'+c[160]+'; box-shadow:'+c[161]+'; background: -webkit-linear-gradient('+c[162]+'); background: -moz-linear-gradient('+c[162]+');}\ #kong_game_ui input#raidsBossFilter:hover, input#raidsBossFilter:focus {background: -webkit-linear-gradient('+c[163]+'); background: -moz-linear-gradient('+c[163]+');}\ ul#SRDotDX_tabpane_tabs input[type="text"].generic {color:'+c[164]+'; text-shadow:'+c[165]+'; border-bottom-color:'+c[166]+';}\ ul#SRDotDX_tabpane_tabs input[type="text"].generic:focus {border-color:'+c[167]+'; background: -webkit-linear-gradient('+c[168]+'); background: -moz-linear-gradient('+c[168]+');}\ textarea#DotDX_raidsToSpam, textarea#options_sbConfig {color:'+c[169]+'; border-color:'+c[170]+'; text-shadow:'+c[171]+'; box-shadow:'+c[172]+'; background: -webkit-linear-gradient('+c[173]+'); background: -moz-linear-gradient('+c[173]+');}\ #kong_game_ui span.notice {text-shadow:'+c[174]+';}\ #kong_game_ui ul#SRDotDX_tabpane_tabs input[type="checkbox"] + label:before {background: url(data:image/png;base64,'+check+') 0 0 no-repeat}\ #kong_game_ui ul#SRDotDX_tabpane_tabs input[type="checkbox"]:checked + label:before {background: url(data:image/png;base64,'+check+') 0 -14px no-repeat}\ #kong_game_ui ul#SRDotDX_tabpane_tabs input[type="radio"] + label:before {background: url(data:image/png;base64,'+radio+') 0 0 no-repeat}\ #kong_game_ui ul#SRDotDX_tabpane_tabs input[type="radio"]:checked + label:before {background: url(data:image/png;base64,'+radio+') 0 -13px no-repeat}\ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list {border-top-color:'+c[176]+'; box-shadow:'+c[177]+'; background: -webkit-linear-gradient('+c[178]+'); background: -moz-linear-gradient('+c[178]+');}\ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list .raid_list_item {border-top-color:'+c[179]+'; border-bottom-color:'+c[180]+';}\ a.DotDX_RaidLink {color:'+c[181]+';}\ a.DotDX_RaidLink:hover {color:'+c[182]+'; text-shadow:'+c[183]+';}\ a.dotdxRaidListDelete {color:'+c[184]+';}\ a.dotdxRaidListDelete:hover {color:'+c[185]+'; text-shadow:'+c[186]+';}\ #raid_list .raid_list_item.DotDX_N:hover {background: -webkit-linear-gradient('+c[187]+'); background: -moz-linear-gradient('+c[187]+');}\ #raid_list .raid_list_item.DotDX_H:hover {background: -webkit-linear-gradient('+c[188]+'); background: -moz-linear-gradient('+c[188]+');}\ #raid_list .raid_list_item.DotDX_L:hover {background: -webkit-linear-gradient('+c[189]+'); background: -moz-linear-gradient('+c[189]+');}\ #raid_list .raid_list_item.DotDX_NM:hover {background: -webkit-linear-gradient('+c[190]+'); background: -moz-linear-gradient('+c[190]+');}\ span.DotDX_List_diff.DotDX_N {color:'+c[191]+';}\ span.DotDX_List_diff.DotDX_H {color:'+c[192]+';}\ span.DotDX_List_diff.DotDX_L {color:'+c[193]+';}\ span.DotDX_List_diff.DotDX_NM {color:'+c[194]+';}\ #kong_game_ui div#helpBox { color:'+c[195]+'; box-shadow:'+c[196]+'; border-top-color:'+c[197]+'; text-shadow:'+c[198]+'; background: -webkit-linear-gradient('+c[199]+'); background: -moz-linear-gradient('+c[199]+');}\ #kong_game_ui div.chat_message_window p.script hr {background:'+c[200]+';}\ #kong_game_ui div.chat_message_window p.script span .title {color:'+c[201]+'; text-shadow:'+c[202]+';}\ #kong_game_ui div.chat_message_window p.script span .title:hover {color:'+c[203]+'; text-shadow:'+c[204]+';}\ table.raids, table.camps {color:'+c[205]+'; text-shadow:'+c[206]+';} \ table.raids td, table.camps td {border-color:'+c[207]+'; background:'+c[208]+';}\ table.raids td.ep, table.camps td.ep {background:'+c[209]+';} \ table.raids th, table.camps th {border-color:'+c[210]+'; background-color:'+c[211]+';} \ table.raids tr.head, table.camps tr.head {background:'+c[212]+';} \ table.raids tr.best td {background:'+c[213]+';} \ table.raids colgroup col.selected {border-color:'+c[214]+';}\ table.camps td.mark {background:'+c[215]+';} \ div.raid_list_item > span.DotDX_extInfo {color:'+c[216]+'; text-shadow:'+c[217]+';}\ #maingame, div.game_page_wrap {border-color:'+c[218]+';}\ body {background-color:'+c[219]+' !important}\ #quicklinks li a, #quicklinks li.rate {color:'+c[220]+'}\ #quicklinks li a:hover {color:'+c[221]+'; text-shadow:'+c[222]+';}\ ',true); /* */ }, createFilterTab: function() { var sm = SRDotDX.config.serverMode-1; var i = 0, isChecked, raid, parentTableId = '', parentTable = ''; SRDotDX.gui.cHTML('#FPXRaidFilterWhatGuild').html("",true); SRDotDX.gui.cHTML('#FPXRaidFilterWhatSpecial').html("",true); SRDotDX.gui.cHTML('#FPXRaidFilterWhatSmall').html("",true); SRDotDX.gui.cHTML('#FPXRaidFilterWhatMedium').html("",true); SRDotDX.gui.cHTML('#FPXRaidFilterWhatLarge').html("",true); SRDotDX.gui.cHTML('#FPXRaidFilterWhatEpic').html("",true); SRDotDX.gui.cHTML('#FPXRaidFilterWhatColossal').html("",true); SRDotDX.gui.cHTML('#FPXRaidFilterWhatGigantic').html("",true); while (i < SRDotDX.raidArray.length) { raid = SRDotDX.raids[SRDotDX.raidArray[i]]; parentTableId = 'FPX_options_cbs_' + raid.id; parentTable = SRDotDX.gui.cHTML('tr').set({id: parentTableId}).html(' \ ' + raid.name + ' \ \ \ \ \ ', false); if (raid.stat == 'H') parentTable.attach('to','FPXRaidFilterWhatGuild'); else if (raid.stat == 'ESH') parentTable.attach('to','FPXRaidFilterWhatSpecial'); else if (raid.size > 1 && raid.size < 50) parentTable.attach('to','FPXRaidFilterWhatSmall'); else if (raid.size == 50) parentTable.attach('to','FPXRaidFilterWhatMedium'); else if (raid.size == 100) parentTable.attach('to','FPXRaidFilterWhatLarge'); else if (raid.size == 250) parentTable.attach('to','FPXRaidFilterWhatEpic'); else if (raid.size == 500) parentTable.attach('to','FPXRaidFilterWhatColossal'); else if (raid.size == 800) parentTable.attach('to','FPXRaidFilterWhatGigantic'); for (var j=0; j<4; j++) { var cbId = "cb_filter_" + raid.id + '_' + j; isChecked = !SRDotDX.config.filters[sm][raid.id][j]; cb = SRDotDX.gui.cHTML('#' + cbId); cb.ele().checked = isChecked; cb.ele().addEventListener("click",function() { var raidId = '', diffIndex = '', reg = /cb_filter_([0-9a-z_]+)_([0-9])/i; var ele = SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML; i = reg.exec(this.id); if (i != null) { raidId = i[1]; diffIndex = parseInt(i[2]) } SRDotDX.config.setFilter(raidId,diffIndex,!this.checked); reg = new RegExp('.DotDX_fltChat_'+raidId+'_'+diffIndex+', ','g'); if(SRDotDX.config.filterChatLinks) { if (!this.checked && !reg.test(ele)) ele = '.DotDX_fltChat_' + raidId + '_' + diffIndex + ', ' + ele; else if (this.checked) ele = ele.replace(reg,''); } reg = new RegExp('.DotDX_fltList_'+raidId+'_'+diffIndex+', ','g'); if(SRDotDX.config.filterRaidList) { if (!this.checked && !reg.test(ele)) ele = '.DotDX_fltList_' + raidId + '_' + diffIndex + ', ' + ele; else if (this.checked) ele = ele.replace(reg,''); } SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML = ele; var cbAllId = "cb_filter_" + raidId + '_all'; var f1 = SRDotDX.config.filters[sm][raidId][0]; var f2 = SRDotDX.config.filters[sm][raidId][1]; var f3 = SRDotDX.config.filters[sm][raidId][2]; var f4 = SRDotDX.config.filters[sm][raidId][3]; if ((!f1 && !f2 && !f3 && !f4) || (f1 && f2 && f3 && f4)) { var cb = SRDotDX.gui.cHTML('#' + cbAllId); cb.ele().checked = this.checked } },true); } var allCbId = "cb_filter_" + raid.id + "_all"; isChecked = !(SRDotDX.config.filters[sm][raid.id][0] && SRDotDX.config.filters[sm][raid.id][1] && SRDotDX.config.filters[sm][raid.id][2] && SRDotDX.config.filters[sm][raid.id][3]); var cb = SRDotDX.gui.cHTML('#' + allCbId); cb.ele().checked = isChecked; cb.on("click",function() { var reg = /cb_filter_([0-9a-z_]+)_all/i, i = reg.exec(this.id), raidId = '', j = 0, cbId, subcb, ele = SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML; if (i != null) raidId = i[1]; while (j < 4) { cbId = 'cb_filter_' + raidId + '_' + j; subcb = SRDotDX.gui.cHTML('#' + cbId); subcb.ele().checked = this.checked; SRDotDX.config.filters[sm][raidId][j] = !this.checked; reg = new RegExp('.DotDX_fltChat_'+raidId+'_'+j+', ','g'); if(SRDotDX.config.filterChatLinks) { if (!this.checked && !reg.test(ele)) ele = '.DotDX_fltChat_' + raidId + '_' + j + ', ' + ele; else if (this.checked) ele = ele.replace(reg,''); } reg = new RegExp('.DotDX_fltList_'+raidId+'_'+j+', ','g'); if(SRDotDX.config.filterRaidList) { if (!this.checked && !reg.test(ele)) ele = '.DotDX_fltList_' + raidId + '_' + j + ', ' + ele; else if (this.checked) ele = ele.replace(reg,''); } SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML = ele; j++ } },true); i++ } }, toggleFiltering: function() { var query = '.DotDX_filter_dummy_0 ', i = 0, frcId = '.DotDX_fltChat_', raidId; var sm = SRDotDX.config.serverMode-1; var fltLen = Object.keys(SRDotDX.config.filters[sm]).length; if ((fltLen != SRDotDX.raidArray.length) || typeof SRDotDX.config.filters[sm]['serpina.jpg'] == 'object' || typeof SRDotDX.config.filters[sm]['adastros'] == 'object' || typeof SRDotDX.config.filters[sm]['gataalli'] == 'object') { while (i < SRDotDX.raidArray.length) { raidId = SRDotDX.raidArray[i]; if(typeof SRDotDX.config.filters[sm][raidId] == 'undefined') SRDotDX.config.filters[sm][raidId] = [false, false, false, false]; i++ } for (i in SRDotDX.config.filters[sm]) if (SRDotDX.raidArray.indexOf(i) < 0) delete SRDotDX.config.filters[sm][i]; console.log('[DotDX] Filters array has been altered!'); } if (SRDotDX.config.filterChatLinks) { i = 0; while (i < SRDotDX.raidArray.length) { raidId = SRDotDX.raidArray[i]; if (SRDotDX.config.filters[sm][raidId][0]) query = frcId + raidId + '_0, ' + query; if (SRDotDX.config.filters[sm][raidId][1]) query = frcId + raidId + '_1, ' + query; if (SRDotDX.config.filters[sm][raidId][2]) query = frcId + raidId + '_2, ' + query; if (SRDotDX.config.filters[sm][raidId][3]) query = frcId + raidId + '_3, ' + query; i++ } } if (SRDotDX.config.filterRaidList) { i = 0; frcId = '.DotDX_fltList_'; while (i < SRDotDX.raidArray.length) { raidId = SRDotDX.raidArray[i]; if (SRDotDX.config.filters[sm][raidId][0]) query = frcId + raidId + '_0, ' + query; if (SRDotDX.config.filters[sm][raidId][1]) query = frcId + raidId + '_1, ' + query; if (SRDotDX.config.filters[sm][raidId][2]) query = frcId + raidId + '_2, ' + query; if (SRDotDX.config.filters[sm][raidId][3]) query = frcId + raidId + '_3, ' + query; i++ } } //if (SRDotDX.config.hideVisitedRaidsInRaidList) query = '.DotDX_visitedRaidList, ' + query; SRDotDX.gui.cHTML('#DotDX_filters').html(query + '{display: none !important}',true); }, switchServer: function() { var sm = SRDotDX.config.serverMode; SRDotDX.config.serverMode = sm == 1 ? 2 : 1; this.toggleFiltering(); this.createFilterTab(); this.applySidebarUI(0); this.cHTML('#raidsBossFilter').ele().value = SRDotDX.config.lastFilter[SRDotDX.config.serverMode-1]; this.updateFilterTxt(SRDotDX.config.lastFilter[SRDotDX.config.serverMode-1],true); //var grObj = {room: holodeck._chat_window._rooms_by_type["guild"]._room}; //holodeck._chat_window.leftRoom(grObj); //holodeck._chat_window.bootstrapChat(); this.cHTML('#DotDX_serverModeRaids').html('#kong_game_ui p.DotDX_sid_'+(SRDotDX.config.serverMode==2?'1':'2')+' {display: none !important}',true); this.scrollChat(); SRDotDX.config.save(false); }, load: function () { if (typeof holodeck._tabs.addTab == 'function' && document.getElementById('chat_rooms_container') != null) { SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'SRDotDX_botClass'}).text('.bot{display:'+(SRDotDX.config.hideBotLinks ? 'none !important':'block')+'}').attach('to',document.head); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'SRDotDX_raidClass'}).text('.SRDotDX_raid{display:'+(SRDotDX.config.hideRaidLinks ? 'none !important':'block')+'}').attach('to',document.head); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'SRDotDX_visitedRaidClass'}).text('.DotDX_visitedRaid{display: '+(SRDotDX.config.hideVisitedRaids ? 'none !important':'block')+'}').attach('to',document.head); //SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'SRDotDX_visitedRaidListClass'}).text('.DotDX_visitedRaidList {display: '+(SRDotDX.config.hideVisitedRaidsInRaidList == true?'none !important':'block')+'}').attach('to',document.head); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'DotDX_forum'}).text('div.game_page_wrap {padding-top: 16px; margin-top: 14px !important; background: #333 !important; display: ' + (SRDotDX.config.hideKongForum ? 'none' : 'block') + '}').attach('to',document.head); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'DotDX_details'}).text('div.game_details_outer {margin-top: 14px !important; width: 900px !important; border: solid 20px #333 !important; display: ' + (SRDotDX.config.hideGameDetails ? 'none' : 'block') + '}').attach('to',document.head); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'DotDX_filters'}).text('.DotDX_filter_dummy_0 {display: none !important}').attach('to',document.head); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'DotDX_serverModeRaids'}).text('#kong_game_ui p.DotDX_sid_'+(SRDotDX.config.serverMode==2?'1':'2')+' {display: none !important}').attach('to',document.head); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'DotDX_chatResizeElems'}).text('#kong_game_ui textarea.chat_input { width: 270px !important; }\ #kong_game_ui div#chat_raids_overlay { width: 292px }\ #kong_game_ui div#chat_raids_overlay > span { width: 282px }\ div#dotdx_sidebar_container { ' + (SRDotDX.config.sbRightSide?"text-align: left; padding-left: 1px":"text-align: left; margin-left: 2px; padding-left: 6px") + ' }').attach('to',document.head); SRDotDX.gui.toggleFiltering(); var elemPositionFix = ""; if(SRDotDX.isFirefox) { elemPositionFix = " \ #kong_game_ui div#chat_room_tabs div a {padding: 3px 9px 4px 7px}\ #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head {padding: 2px 7px 3px}\ #kong_game_ui span.generic {margin: 2px 6px 0}\ #kong_game_ui div#dotdx_status_div {padding: 5px 6px}\ #kong_game_ui div#chat_window_header div.dotdx_chat_overlay {margin-top: 4px; padding-top: 3px;}\ #kong_game_ui div#chat_raids_overlay {padding: 4px 0}\ #kong_game_ui div.chat_message_window p span.timestamp, #kong_game_ui div.chat_message_window p span.room {vertical-align: baseline}\ #kong_game_ui div.chat_message_window p {padding: 2px 5px 3px}\ "; } else { elemPositionFix = " \ #kong_game_ui div#chat_room_tabs div a {padding: 4px 9px 3px 7px}\ #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head {padding: 3px 7px 2px}\ #kong_game_ui span.generic {margin: 3px 6px 0}\ #kong_game_ui div#dotdx_status_div {padding: 6px 6px 4px}\ #kong_game_ui div#chat_window_header div.dotdx_chat_overlay {margin-top: 3px; padding-top: 4px;}\ #kong_game_ui div#chat_raids_overlay {padding: 5px 0 3px}\ #kong_game_ui div.chat_message_window p span.timestamp, #kong_game_ui div.chat_message_window p span.room {vertical-align: text-top}\ #kong_game_ui div.chat_message_window p {padding: 3px 5px}\ "; } SRDotDX.gui.cHTML('style').set({type: "text/css"}).text(" \ " + (SRDotDX.config.hideGameTitle ? "ul#gamepage_categories_list, .horizontal_ad, span#kong_game_bf_300x250_2_holder, div#gamespotlight, div#dealspot_banner_holder, div#kong_bumper_preroll_600x400-ad-slot, div#gamepage_header {display:none;} \ div.gamepage_header_outer, div.gamepage_header_inner, div.gamepage_header_outer h1 {height: 0 !important; padding: 0 !important; margin: 0 !important} \ #primarylayout .maincontent {padding: 6px 0 !important} \ " : "") + "div.raid_list_item.hidden, .DotDX_nukedRaid, div.game_page_admindev_controls, div#subwrap, li#quicklinks_facebook {display:none;} \ #primarywrap {background-image: none !important; background-color: transparent !important;} \ /* body {background-color: #" + SRDotDX.config.bckColor + " !important} */ \ #maingame { border: 1px solid transparent }\ div#game { overflow:hidden }\ div.upper_gamepage { background: transparent !important }\ #FPXtt { position:absolute; display:block; } \ #FPXtttop { display:block; height:5px; margin-left:5px; } \ #FPXttcont { display:block; padding:2px 12px 3px 7px; margin-left:5px; background:#666; color:#fff; } \ #FPXttbot {display:block;height:5px;margin-left:5px;} \ #kong_game_ui ul.main_tabs {height:30px; padding-left:7px}\ #kong_game_ui ul.main_tabs li.tab:first-child { margin-left: 1px; }\ #kong_game_ui ul.main_tabs li.tab a { padding: 6px 6px 4px; margin-top: 6px; border: 1px solid #000; margin-right: 3px; transition: all .3s;}\ #kong_game_ui ul.main_tabs li.tab a.active {margin-top: 5px; padding: 7px 6px 5px; border-radius: 5px 0 5px 0;}\ /*#kong_game_ui div#chat_tab_pane {height: 645px !important}*/ \ #kong_game_ui div#lots_tab_pane {padding: 8px; text-align: left; background-color: #777; height: 644px}\ #kong_game_ui div#lots_tab_pane div#dotdx_shadow_wrapper { width: 282px; border: 1px solid #222; box-shadow: 0 0 12px #111; height: 643px; overflow: hidden; background-color: #ddd;}\ #kong_game_ui div#chat_window { background-color: #fff; border: 1px solid #333; overflow: hidden; box-shadow: 0 0 8px 1px #333; }\ #kong_game_ui div#chat_window_header { height: 69px; box-shadow: 0 0 5px #333; position: relative; background-color: #ddd; }\ #kong_game_ui div#chat_window_header div.room_name_container { border-bottom: 1px solid #aaa; padding: 5px 7px 3px; margin: 0 !important; background-color: #e6e6e6; font-family: \"Trebuchet MS\", Helvetica, sans-serif }\ #kong_game_ui div#chat_window_header div.room_name_container .room_name { font-family: \"Trebuchet MS\", Helvetica, sans-serif; color: #333; text-shadow: 0 0 3px #ccc; }\ #kong_game_ui div.chat_actions_container span.kong_ico { font-size: 12px !important; }\ #kong_game_ui div.chat_actions_container ul.chat_actions_list { right: -1px; padding: 4px 0; border-radius: 5px 0 0 5px; top: 22px; border-color: #777; box-shadow: 0 0 8px #999; min-width: 122px; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; }\ #kong_game_ui div.chat_actions_container ul.chat_actions_list li { line-height: 20px; padding: 0 10px; border-width: 1px 0; border-color: #fff; border-style: solid; transition: box-shadow .5s;}\ #kong_game_ui .chat_actions_container .chat_actions_list li:hover { background-color: #f0f0f0; border-color: #bbb; color: #333; box-shadow: 0 0 4px #ddd; position: relative; }\ #kong_game_ui div.chat_actions_container span.btn_tools { height: 16px; line-height: initial !important; width: 20px; margin: 2px 3px; } \ #kong_game_ui div#chat_window_header div.dotdx_chat_overlay { border-top: 1px solid #bbb; overflow: hidden; white-space: nowrap; } \ #kong_game_ui div.chat_actions_container select { width: 92px; margin-top: 2px; font-family: \"Trebuchet MS\",Helvetica,sans-serif; font-style: italic; outline: none; background-color: #ddd; margin-right: 2px; } \ #kong_game_ui div#chat_room_tabs div a { margin: 0; background: none; text-decoration: none; font-family: \"Trebuchet MS\",Helvetica,sans-serif; font-size: 11px; font-style: italic; transition: text-shadow .2s; border-right: 1px dotted #aaa; } \ #kong_game_ui div#chat_rooms_container div.chat_tabpane.users_in_room { height: 89px; border: 1px solid #999; border-width: 1px 0; border-bottom-color: #888; box-shadow: inset 0 -2px 6px -4px #444; } \ #kong_game_ui div#chat_raids_overlay { display:none; position: absolute; overflow: hidden; bottom: 488px; left: 3px; background-color: #e0e0e0; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; border-width: 1px; border-style: solid; border-radius: 2px;}\ #kong_game_ui div#chat_raids_overlay.active { display: block } \ #kong_game_ui div#chat_raids_overlay > span { display: block; margin: 0 auto }\ #kong_game_ui div.chat_controls {border-top: 1px solid #000; position: relative; }\ #kong_game_ui div#lots_tab_pane ul { margin: 0px; padding: 0px; list-style-type: none; position: relative;} \ #kong_game_ui div#lots_tab_pane ul li.tab { float: left; height: 100%; } \ #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head { font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; font-style: italic; cursor: pointer; border-right: 1px dotted #aaa; transition: text-shadow .2s} \ #kong_game_ui div#lots_tab_pane ul li.tab div.tab_pane { display: none; border-top: 1px solid #888; width: 282px; height: 600px; padding-top: 2px;} \ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_head { cursor: default; }\ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane { position: absolute; display: block; left: 0px; }\ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list, \ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #paste_list {overflow-y: auto; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; height: 449px; border-top: 1px solid #aaa; box-shadow: 0 0 3px #ccc; background: -webkit-linear-gradient(left, #fff, #eee); background: -moz-linear-gradient(left, #fff, #eee);} \ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list .raid_list_item {cursor: pointer; position: relative; padding: 3px 2px 1px; border-width: 1px 0; border-style: solid; border-top-color: transparent; border-bottom-color: #ddd;} \ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list .raid_list_item.hidden {display:none;} \ a.FPXImportLink, a.FPXDeleteLink { font: normal 10px Arial; border: 1px solid #c0c0c0; color:black; text-decoration:none; cursor:pointer; font-variant: small-caps; display: block; width: 40px; text-align: center; margin-right: 2px; background-color: #fff} \ a.dotdxRaidListDelete { font: 10px \"Trebuchet MS\"; text-decoration: none; cursor: pointer; margin-right: 2px; float:right; display: inline} \ a.DotDX_RaidLink {text-decoration:none;} \ .raid_list_item a.DotDX_RaidLink {vertical-align: text-bottom;}\ div.DotDX_ListPanel {border-top: 1px dashed #999; margin-top: 2px; padding-top: 2px; }\ div.DotDX_ListPanel > span.raidListContent {font-style: italic} \ #kong_game_ui p.user_count.full { color: crimson; } \ #kong_game_ui div#lots_tab_pane a.pastebinlink {font: normal 11px Verdana; color:#333; text-decoration:none; cursor:pointer;} \ #kong_game_ui div#lots_tab_pane a.pastebinlink:hover { text-decoration: underline; color: black } \ #kong_game_ui div#lots_tab_pane span.pasteright, #kong_game_ui div#lots_tab_pane span.pasteleft {font: normal 11px Verdana; color: #333} \ #kong_game_ui div#lots_tab_pane span.pasteright {float:right; padding-right: 6px} \ #kong_game_ui div#lots_tab_pane span.pasteleft {float:left} \ #kong_game_ui div.chat_message_window { position: relative; margin: 0; } \ #kong_game_ui div.chat_message_window p {border-width: 1px 0; border-style: solid; margin: 0;} \ #kong_game_ui div.chat_message_window p.SRDotDX_raid, #kong_game_ui div.chat_message_window p.whisper, #kong_game_ui div.chat_message_window p.script { border-top-color: #e5e5e5; }\ #raid_list .raid_list_item.DotDX_N:hover {border-bottom-color: rgb(138, 179, 137); background: -webkit-linear-gradient(top,#CBE7C4,#F3FAF2); background: -moz-linear-gradient(top,#CBE7C4,#F3FAF2);} \ #raid_list .raid_list_item.DotDX_H:hover {border-bottom-color: rgb(173, 173, 104); background: -webkit-linear-gradient(top,#F7F0C8,#FCFBF8); background: -moz-linear-gradient(top,#F7F0C8,#FCFBF8);} \ #raid_list .raid_list_item.DotDX_L:hover {border-bottom-color: rgb(177, 135, 128); background: -webkit-linear-gradient(top,#F3D7D1,#FCF7F7); background: -moz-linear-gradient(top,#F3D7D1,#FCF7F7);} \ #raid_list .raid_list_item.DotDX_NM:hover {border-bottom-color: rgb(169, 154, 187); background: -webkit-linear-gradient(top,#DDD4E2,#F4F0F7); background: -moz-linear-gradient(top,#DDD4E2,#F4F0F7);} \ #kong_game_ui div.chat_message_window p.whisper {margin:0; border-bottom-color: #A1B4BE; background: -webkit-linear-gradient(top,#DCE8F1,#EFF4F7); background: -moz-linear-gradient(top,#DCE8F1,#EFF4F7); } \ #kong_game_ui div.chat_message_window p.script {border-bottom-color: rgb(165, 165, 165); background: -webkit-linear-gradient(left,#f3f3f3,#fff); background: -moz-linear-gradient(left,#f3f3f3,#fff);} \ #kong_game_ui div.chat_message_window p.script hr { height: 1px; border: 0; background: #ccc; margin: 4px 0 3px; }\ #kong_game_ui div.chat_message_window p.script span { font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px} \ #kong_game_ui div.chat_message_window p.script span .title { text-decoration: none; font-size: 12px; font-weight: bold; color: #222 } \ #kong_game_ui div.chat_message_window p span.separator { margin-right: 0px; display:inline; float: none} \ #kong_game_ui div.chat_message_window p span.username { color: rgb(39, 101, 148); text-decoration: none; cursor: pointer; display:inline; float: none } \ #kong_game_ui div.chat_message_window p span.username.ign { color: rgb(38, 116, 34); }\ #kong_game_ui div.chat_message_window p span.username.is_self { color: rgb(151, 49, 49); }\ #kong_game_ui div.chat_message_window p span.username:hover { text-decoration: underline } \ #kong_game_ui div.chat_message_window p span.timestamp {font-style: italic; font-size: 9px; color: #666;} \ #kong_game_ui div.chat_message_window p span.message {line-height: 16px; word-wrap: break-word; display:inline; float: none} \ #kong_game_ui div.chat_message_window p span.message a { text-decoration: none; color: #444; font-style: normal } \ #kong_game_ui div.chat_message_window p span.message a:hover { color: #000; text-shadow: 0 0 6px #888; } \ #kong_game_ui div.chat_message_window p span.message a.chat_link:hover { text-shadow: 0 0 4px #F5C68A; text-decoration: none; } \ #kong_game_ui div.chat_message_window p span.message a.chat_link { color: #946A3D; } \ #kong_game_ui div.chat_message_window p span.message a.reply_link {font-style: italic} \ #kong_game_ui div.chat_message_window p > span.slider {position: absolute; display: inline-block; border: 1px solid #777; border-left: 0; height: 24px; left: -2px; margin-top: -5px; border-radius: 0 5px 5px 0; background: #eee; box-shadow: 0 0 7px #777; transition: max-width .3s; overflow: hidden; white-space: nowrap;}\ #kong_game_ui div.chat_message_window p > span.slider > span.magic, div.raid_list_item span.DotDX_extMagics > span {background-image: url(data:image/png;base64,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); background-position-y: 0; width: 16px; display: inline-block; height: 16px; margin-right: 2px; margin-top: 4px }\ div.raid_list_item span.DotDX_extMagics > span {margin-top: 0; vertical-align: text-top; margin-right: 1px; } \ div.raid_list_item span.DotDX_extMagics {float:right}\ #kong_game_ui div.chat_message_window p > span.slider > span.magic:first-child { margin-left: 5px; } \ #kong_game_ui div.chat_message_window p > span.slider > span.magic:last-child { margin-right: 5px; } \ #kong_game_ui div.chat_message_window p > span.slider > span.user { display: inline-block; height: 16px; margin-left: 5px; margin-top: 4px; vertical-align: text-top; font-style: italic; cursor: pointer}\ #kong_game_ui div.chat_message_window p > span.slider > span.user:first-child { text-overflow: ellipsis; max-width: 80px; white-space: nowrap; overflow: hidden; padding: 0 3px; font-style: normal; }\ #kong_game_ui div.chat_message_window p > span.slider > span.user:last-child { margin-right: 10px; } \ #kong_game_ui div.chat_message_window p > span.slider > span.user:hover { text-shadow: 0 0 6px #888; } \ #kong_game_ui div.chat_message_window p.emote {font-style: italic; color: #085088; text-align: center;} \ #kong_game_ui div.chat_message_window p.emote span.username, #kong_game_ui div.chat_message_window p.emote span.separator { display: none; } \ #kong_game_ui div.chat_message_window p span.room { color: #666; font-size: 9px;} \ #kong_game_ui div.chat_message_window div.error_msg { background-color: #FFF8E0; margin: 0; padding: 3px 5px; border-bottom: 1px solid #ddd; font-size: 9px; color: #555; } \ #kong_game_ui .chatOverlayMain {border-style: solid; border-color: #C2A71C; border-width: 1px 0; font-family: \"Trebuchet MS\", Helvetica, sans-serif; color: #fff; font-size: 11px; font-weight: normal; text-align: right} \ #kong_game_ui .chatOverlayMain > span {padding: 3px 10px; cursor: pointer;} \ #kong_game_ui .chatOverlayMain > span:hover {background-color: #C2A71C; font-style: italic; color: #555}\ #kong_game_ui textarea.chat_input { height: 30px !important; margin: 0 !important; outline: none; padding: 4px 6px 4px } \ #kong_game_ui div.dotdx_chat_buttons { position: relative; width: 100%; padding: " + (SRDotDX.isFirefox ? "0 0 1px":"1px 0 0") + "; background-color: #eaeaea; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; font-style: italic; color: #444; box-shadow: 0 0 6px -2px #333; border-width: 1px 0; border-style: solid; border-color: #888; background: -webkit-linear-gradient(top,#ddd,#f0f0f0); background: -moz-linear-gradient(top,#ddd,#f0f0f0);}\ #kong_game_ui div.dotdx_chat_buttons > span { display: inline-block; padding: 3px 7px; cursor: pointer; transition: text-shadow .2s; }\ #kong_game_ui input.dotdx_chat_filter { border: 1px solid #ccc; padding: 0 4px; display: inline-block; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; font-style: italic; color: #333; width: 110px; background-color: #f7f7f7; outline: none; }\ #kong_game_ui input.dotdx_chat_filter:focus { background-color: #fff }\ div.dotdx_chat_buttons > span.active { text-shadow: 0 0 4px #aaa }\ div.dotdx_chat_buttons > span:hover { text-shadow: 0 0 4px #888 }\ div.tab_pane p.collapsingCategory { border: 1px solid #999; border-width: 1px 0; margin: 5px 0 0; cursor: pointer; background-color: #ddd; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; padding: 2px 6px 1px; padding-right: 10px; box-shadow: 0 0 4px #ccc; background: -webkit-linear-gradient(top, #ccc, #eee); background: -moz-linear-gradient(top, #ccc, #eee); transition: all .3s; } \ div.tab_pane p.collapsingCategory:hover { background: -webkit-linear-gradient(top, #ccc, #ddd); background: -moz-linear-gradient(top, #ccc, #ddd); box-shadow: 0 0 4px #bbb;}\ div.tab_pane div.collapsingField { padding-top: 3px; }\ xxx {display:block !important}\ span.DotDX_RaidListVisited {padding: 0 3px; vertical-align: text-bottom} \ span.DotDX_List_diff {display: inline-block; width: 20px; font-weight: bold; padding-left: 2px; vertical-align: text-bottom} \ span.DotDX_List_diff.DotDX_N {color: #00BB00;} \ span.DotDX_List_diff.DotDX_H {color: #DDAA00;} \ span.DotDX_List_diff.DotDX_L {color: #FF0000;} \ span.DotDX_List_diff.DotDX_NM {color: #BB00BB;} \ div.tab_pane input, div.tab_pane select {border: 1px solid #ccc; padding: 1px} \ div.tab_pane input {height: 14px;} \ div.tab_pane select {height: 18px} \ div.tab_pane input[type=\"button\"] {height: 26px; padding: 0 3px; color: #444; border: 1px solid #bbb; background-color: #f7f7f7; outline: none; box-shadow: 0 0 3px #ddd; background: -webkit-linear-gradient(top, #eee, #fff); background: -moz-linear-gradient(top, #eee, #fff); font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; border-radius: 2px; transition: all .3s} \ div.tab_pane input[type=\"button\"].generic:hover {background: -webkit-linear-gradient(top, #fff, #ccc); background: -moz-linear-gradient(top, #fff, #ccc); box-shadow: 0 0 5px #bbb; text-shadow: 0 0 3px #bbb;}\ div.tab_pane input[type=\"button\"].green:hover {background: -webkit-linear-gradient(top, #fff, #b9daaf); background: -moz-linear-gradient(top, #fff, #b9daaf); box-shadow: 0 0 5px #a7ca9c; text-shadow: 0 0 3px #bbb;}\ div.tab_pane input[type=\"button\"].blue:hover {background: -webkit-linear-gradient(top, #fff, #a4c8ee); background: -moz-linear-gradient(top, #fff, #a4c8ee); box-shadow: 0 0 5px #a9d3ff; text-shadow: 0 0 3px #bbb;}\ div.tab_pane input[type=\"button\"].red:hover,\ div.tab_pane input[type=\"button\"][value=\"Cancel\"]:hover {background: -webkit-linear-gradient(top, #fff, #f0a4a4); background: -moz-linear-gradient(top, #fff, #f0a4a4); box-shadow: 0 0 5px #ffbaba; text-shadow: 0 0 3px #bbb;}\ div.tab_pane input.landpmbutton { height: 20px; width: 22px; } \ div.tab_pane input.landpmbuttonhigh { height: 20px; width: 22px; background-color: #82BA00; background: -webkit-linear-gradient(top,#8DC98D,#fff); background: -moz-linear-gradient(top,#8DC98D,#fff); } \ div.tab_pane input.landtxtfield { padding: 2px 0; width: 50px; text-align: center} \ div.tab_pane input.landtxtfieldc { padding: 2px 0; width: 100%; text-align: center } \ div.tab_pane td.landname { padding-top: 3px} \ div.tab_pane input.landsavebutton { height: 20px; width:100% } \ table.raids, table.camps { font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 10px; text-align: center; border-collapse: collapse; margin: 5px auto } \ table.raids td { border: 1px solid #bbb; width: 55px; background-color: #fff; }\ table.camps td { border: 1px solid #bbb; width: 20px; background-color: #fff; }\ table.raids td.ep, table.camps td.ep { text-align: right; width: auto; padding: 0 6px; } \ table.raids th, table.camps th { border: 1px solid #bbb; background-color: #efefef; } \ table.raids tr.head, table.camps tr.head { background-color: #fafafa; } \ table.raids tr.split td, table.camps th { border-bottom-width: 2px; } \ table.raids tr.best td, table.camps td.mark { background-color: #eff4f9; } \ table.camps .tb {border-right-width: 2px} \ table.raids colgroup col.selected { border: 2px solid #5f9ea0; }\ ul#SRDotDX_tabpane_tabs input[type=\"checkbox\"] {display: none}\ ul#SRDotDX_tabpane_tabs input[type=\"checkbox\"] + label {font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; cursor: pointer;}\ ul#SRDotDX_tabpane_tabs input[type=\"checkbox\"] + label:before { content:\"\"; display:inline-block; width:18px; height:14px; position: relative; top: 3px; }\ ul#SRDotDX_tabpane_tabs input[type=\"checkbox\"].generic + label:before { margin-left: 6px }\ ul#SRDotDX_tabpane_tabs input[type=\"radio\"] {display: none}\ ul#SRDotDX_tabpane_tabs input[type=\"radio\"] + label {font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; cursor: pointer;}\ ul#SRDotDX_tabpane_tabs input[type=\"radio\"] + label:before { content:\"\"; display:inline-block; width:16px; height:13px; position: relative; top: 2px; }\ ul#SRDotDX_tabpane_tabs input[type=\"radio\"].generic + label:before { margin-left: 5px }\ ul#SRDotDX_tabpane_tabs input[type=\"text\"].generic { border: 1px dashed transparent; border-bottom-color: #bbb; padding: 0 1px; background-color: transparent; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; color: #333; outline: none; height: 15px; text-align: center; }\ ul#SRDotDX_tabpane_tabs input[type=\"text\"].generic:hover { border-style: solid; }\ ul#SRDotDX_tabpane_tabs input[type=\"text\"].generic:focus {border-style: solid; border-color: #ccc; background: -webkit-linear-gradient(top,#eee,#fff); background: -moz-linear-gradient(top,#eee,#fff);}\ ul#SRDotDX_tabpane_tabs input[type=\"text\"][disabled].generic { color: #aaa; }\ ul#SRDotDX_tabpane_tabs input[type=\"text\"].color {float: right; margin-right: 6px; width: 40px;}\ input#raidsBossFilter {width: 260px; box-shadow: 0 0 4px -1px #aaa; outline: none; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; padding: 3px 5px; background: -webkit-linear-gradient(top, #fff, #d1dfee); background: -moz-linear-gradient(top, #fff, #d1dfee); border-color: #aaa; margin: 4px auto; display: block; border-radius: 2px;}\ input#raidsBossFilter:hover, input#raidsBossFilter:focus {background: -webkit-linear-gradient(top, #DFE8F1, #fff); background: -moz-linear-gradient(top, #DFE8F1, #fff);}\ textarea#DotDX_raidsToSpam, textarea#options_sbConfig { border: 1px solid #aaa; width: 254px; margin-left: 6px; margin-top: 5px; margin-bottom: 4px; padding: 3px 7px; resize: none; outline: none; font-size: 10px; font-style: italic; }\ #kong_game_ui div#dotdx_status_div {font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-style: italic; font-size: 11px; margin: 0; border-bottom: 1px solid #aaa; }\ #kong_game_ui div#helpBox { padding: 0; position: absolute; bottom: 8px; overflow: hidden; width: 282px; transition: max-height .5s; border-top-width: 0; border-top-style: solid; font-family: \"Trebuchet MS\",Helvetica,sans-serif; font-size: 12px; font-style: italic;}\ #kong_game_ui div#helpBox > span {display: inline-block; padding: 11px 8px 9px;}\ #kong_game_ui span.generic { display: inline-block; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; }\ #kong_game_ui span.notice { display: inline-block; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 10px; font-style: italic; margin: 3px 6px; }\ #kong_game_ui div#dotdx_usercontext { display: none; position: absolute; background-color: #eee; border: 1px solid #888; display: none; box-shadow: 0 0 8px #888; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; background: -webkit-linear-gradient(top,#e7e7e7,#fff); background: -moz-linear-gradient(top,#e7e7e7,#fff); cursor: pointer;}\ #kong_game_ui div#dotdx_usercontext span { display: inline-block; padding: 3px 6px 2px }\ #kong_game_ui div#dotdx_usercontext span:hover { text-shadow: 0 0 3px #aaa; }\ #kong_game_ui td {vertical-align: middle}\ div#FPXfsOptions span.generic {float:left; clear:both}\ div#FPXfsOptions span.share { font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 10px; margin-right: 10px; margin-right: 5px; display: inline-block; padding-top: 3px; }\ div#FPXfsOptions label { margin-right: 3px; }\ div#dotdx_sidebar_container { margin-top: 0; padding-top: 5px; overflow: hidden; }\ div#dotdx_sidebar_container > button {width: 60px; border: 1px solid #555; margin-bottom: 5px; font-size: 11px; font-family: \"Trebuchet MS\", Helvetica, sans-serif; height: 21px; transition-property: box-shadow, text-shadow, border-color, background; transition-duration: .5s; outline: none; position: relative; z-index: 9;}\ div#dotdx_sidebar_container > button:hover { position: relative; z-index: 40;}\ div#dotdx_sidebar_container > div.label { text-align: center; color: #fff; padding-top: 7px; height: 19px; text-shadow: 0 0 6px #fff; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; }\ div#dotdx_sidebar_container > div { width: 60px; height: 26px }\ div#dotdx_sidebar_container > input[type=\"text\"] { border: 1px solid #555; margin-bottom: 5px; display: inline-block; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; font-style: italic; width: 46px; outline: none; height: 13px; text-align: center; position:absolute; z-index:3; padding: 3px 6px; transition: width .5s; }\ div#dotdx_sidebar_container > input[type=\"text\"].slim {width: 16px}\ div#dotdx_sidebar_container > input[type=\"text\"]:hover, div#dotdx_sidebar_container > input[type=\"text\"]:focus { width:250px; text-align: left; }\ div#dotdx_sidebar_container > div#serverButton {cursor: pointer; border: 1px solid #111; text-align: center; height: auto; width: 58px; padding: 4px 0px; box-shadow: 0px 0px 4px #222; margin-bottom: 7px; transition: all .5s ease 0s;}\ div#dotdx_sidebar_container > div#serverButton:hover {border-radius: 5px;} \ div#dotdx_sidebar_container > button.slim, div#dotdx_sidebar_container > div.slim {width: 30px}\ div#dotdx_sidebar_container.slim {width: 32px}\ div#dotdx_sidebar_container > div#serverButton.slim {width: 28px}\ #kong_game_ui div#chat_room_tabs div a, #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head {transition: all .3s;}\ div.raid_list_item > span.DotDX_extState { display: inline-block; width:27px; padding-top: 2px }\ div.raid_list_item > span.DotDX_extInfo { float: right; display:inline; margin-right: 8px; color:#c0c0c0; font-size: 11px }\ div.raid_list_item > br {clear:both}\ "+elemPositionFix).attach("to",document.head); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'DotDX_themeClass'}).attach('to',document.head); SRDotDX.gui.applyTheme(); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'DotDX_tabs'}).attach('to',document.head); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'DotDX_fontClass'}).attach('to',document.head); SRDotDX.gui.applyFontSize(); var link = SRDotDX.gui.cHTML('a').set({href: '#lots_tab_pane', class: ''}).html(SRDotDX.config.dotdxTabName, false).attach('to', SRDotDX.gui.cHTML('li').set({ class: 'tab', id: 'lots_tab' }).attach('after', 'chat_tab').ele()).ele(); var sbTmp = JSON.stringify(SRDotDX.config.sbConfig); sbTmp = sbTmp.slice(1,sbTmp.length-1).replace(/},/g,"}, ").replace(/l,/g,"l, "); var pane = SRDotDX.gui.cHTML('div').set({id: 'lots_tab_pane'}).html(' \
\
DotDX:
\
\
    \
  • \
    Raids
    \
    \
    \
    \

    Filtering

    \
    \ \ \ \ \
    \
    \ \ \ \ \
    \ \ \
    \
    \
    \
  • \
  • \
    Opts
    \
    \
    \

    Raid Options+

    \ \
    \
    \

    Chat Options+

    \ \
    \
    \

    Pastebin Options+

    \ \
    \
    \

    Interface Options+

    \ \
    \
    \

    Sidebar Options+

    \ \
    \
    \

    Friend Share Options+

    \ \
    \
    \
  • \
  • \
    Share
    \
    \
    \
    \

    Share+

    \
    \
    \ Whisper to
    \ (if "whisper to" field is blank, raids will be posted public) \ \
    \
    \
    \
    \

    Import+

    \ \
    \
    \ \
    \
  • \
  • \
    Filter
    \
    \
    \
    \

    Filtering options+

    \
    \
    \
    \
    \
    \
    \
    \

    Small Raids+

    \ \ \ \ \ \ \
    \
    \

    Medium Raids+

    \ \ \ \ \ \ \
    \
    \

    Large Raids+

    \ \ \ \ \ \ \
    \
    \

    Epic Raids+

    \ \ \ \ \ \ \
    \
    \

    Colossal Raids+

    \ \ \ \ \ \ \
    \
    \

    Gigantic Raids+

    \ \ \ \ \ \ \
    \
    \

    Guild Raids+

    \ \ \ \ \ \ \
    \
    \

    World Raids+

    \ \ \ \ \ \ \
    \
    \
    \
    \
  • \
  • \
    Calc
    \
    \
      \
    • \
      \

      Land Calculator+

      \
      \
      \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
      Cornfield Stable
      BarnStore
      PubInn
      SentryFort
      Castle
      \
      \
      \
      \
    • \
    \
    \
  • \
\
\
Help message
\
\ ', false).attach('to', 'kong_game_ui').ele(); SRDotDX.gui.cHTML('style').set({type: "text/css",id: 'DotDX_colors'}).text(' \ .DotDX_filter_dummy_0 {display: none !important} \ ').attach('to',document.head); //pane.style.height = document.getElementById('chat_tab_pane').style.height; var e = pane.getElementsByClassName('tab_head'); i = e.length; while (i--) { e[i].addEventListener('click', function() { if (!/\bactive\b/i.test(this.className)) { var e = document.getElementById("lots_tab_pane").getElementsByTagName("li"); var i = e.length; while (i--) if (e[i].getAttribute("class").indexOf("active") > -1) e[i].className = e[i].className.replace(/ active$/g,""); (this.parentNode).className += ' active'; } }); } holodeck._tabs.addTab(link); SRDotDX.gui.applyTabs(); //Set up custom chat size SRDotDX.gui.hideWC(true); //Chat raids overlay div SRDotDX.gui.cHTML('div').set({id: 'chat_raids_overlay'}) .html('',true) .attach("to",'chat_tab_pane'); //Sidebar elements generator if (SRDotDX.config.sbEnable) SRDotDX.gui.applySidebarUI(1); //spam tab var FPXimpSpam = SRDotDX.gui.cHTML('#DotDX_raidsToSpam'); var FPXSpamText = 'Paste raid and/or pastebin links here to share or import\n\nLinks must be comma (,) separated.'; FPXimpSpam.ele().value=FPXSpamText; FPXimpSpam.ele().addEventListener('blur',function() { if (this.value == '') this.value = FPXSpamText }); FPXimpSpam.ele().addEventListener('focus',function() { if (this.value == FPXSpamText) this.value = '' }); //chat global listener var chat_window = document.getElementById('chat_rooms_container'); chat_window.addEventListener('click',function(e) { SRDotDX.gui.chatWindowMouseDown(e) }, false); chat_window.addEventListener('contextmenu',function(e) { SRDotDX.gui.chatWindowContextMenu(e) }, false); //land tab els = document.FPXLandForm; i = 9; while (i--) els.elements['tf_'+(i+1)].value = SRDotDX.config.FPXLandOwnedCount[i]; SRDotDX.gui.FPXLandUpdater(); //raid tab var raids_tab = document.getElementById('raids_tab'); raids_tab.addEventListener('click', function(){ SRDotDX.gui.refreshRaidList(); }, false); var raidBossFilter = SRDotDX.gui.cHTML('#raidsBossFilter'); raidBossFilter.ele().value = SRDotDX.config.lastFilter[SRDotDX.config.serverMode-1]; raidBossFilter.ele().addEventListener("keyup", function(){ SRDotDX.gui.updateFilterTxt(this.value,true); }); var filterIncVis = SRDotDX.gui.cHTML('#dotdx_flt_vis'); filterIncVis.ele().checked = SRDotDX.config.fltIncVis; filterIncVis.on('click',function(){ SRDotDX.config.fltIncVis = this.checked; if(this.checked) { document.getElementById('dotdx_flt_nuke').checked = false; SRDotDX.config.fltShowNuked = false; document.getElementById('dotdx_flt_all').checked = false; SRDotDX.config.fltShowAll = false; } SRDotDX.gui.selectRaidsToJoin('checkbox')}); var filterShowNuked = SRDotDX.gui.cHTML('#dotdx_flt_nuke'); filterShowNuked.ele().checked = SRDotDX.config.fltShowNuked; filterShowNuked.on('click',function(){ SRDotDX.config.fltShowNuked = this.checked; if(this.checked) { document.getElementById('dotdx_flt_vis').checked = false; SRDotDX.config.fltIncVis = false; document.getElementById('dotdx_flt_all').checked = false; SRDotDX.config.fltShowAll = false; } SRDotDX.gui.selectRaidsToJoin('checkbox')}); var filterShowAll = SRDotDX.gui.cHTML('#dotdx_flt_all'); filterShowAll.ele().checked = SRDotDX.config.fltShowAll; filterShowAll.on('click',function(){ SRDotDX.config.fltShowAll = this.checked; if(this.checked) { document.getElementById('dotdx_flt_vis').checked = false; SRDotDX.config.fltIncVis = false; document.getElementById('dotdx_flt_nuke').checked = false; SRDotDX.config.fltShowNuked = false } SRDotDX.gui.selectRaidsToJoin('checkbox')}); //raidlist global click listener var raid_list = document.getElementById('raid_list'); raid_list.addEventListener('click', function(e) { e.preventDefault(); e.stopPropagation(); return false },false); raid_list.addEventListener('mousedown',function(e) { SRDotDX.gui.FPXraidListMouseDown(e) },false); //options tab var optsImportFiltered = SRDotDX.gui.cHTML('#SRDotDX_options_importFiltered'); optsImportFiltered.ele().checked = SRDotDX.config.importFiltered; optsImportFiltered.on('click',function(){ SRDotDX.config.importFiltered = this.checked; SRDotDX.config.save(false) }); var optsShowFs = SRDotDX.gui.cHTML('#SRDotDX_options_showFS'); optsShowFs.ele().checked = SRDotDX.config.linkShowFs; optsShowFs.on('click', function(){ SRDotDX.config.linkShowFs = this.checked; SRDotDX.config.save(false) }); var optsShowAp = SRDotDX.gui.cHTML('#SRDotDX_options_showAP'); optsShowAp.ele().checked = SRDotDX.config.linkShowAp; optsShowAp.on('click', function(){ SRDotDX.config.linkShowAp = this.checked; SRDotDX.config.save(false) }); var optsHideARaids = SRDotDX.gui.cHTML('#SRDotDX_options_hideRaidLinks'); var optsHideBRaids = SRDotDX.gui.cHTML('#SRDotDX_options_hideBotLinks'); var optsHideVRaids = SRDotDX.gui.cHTML('#SRDotDX_options_hideVisitedRaids'); var optsConfirmDeletes = SRDotDX.gui.cHTML('#SRDotDX_options_confirmWhenDeleting'); var optsMarkImportedVisited = SRDotDX.gui.cHTML('#SRDotDX_options_markImportedRaidsVisited'); var optsWhisperTo = SRDotDX.gui.cHTML('#SRDotDX_options_whisperTo'); var optsMarkMyRaidsVisited = SRDotDX.gui.cHTML('#SRDotDX_options_markMyRaidsVisited'); var optsFormatLinkOutput = SRDotDX.gui.cHTML('#SRDotDX_options_formatLinkOutput'); var optsAutoImportPaste = SRDotDX.gui.cHTML('#SRDotDX_options_autoImportPaste'); var optsConfirmForLargePaste = SRDotDX.gui.cHTML('#SRDotDX_options_confirmForLargePaste'); var optsConfirmPasteSize = SRDotDX.gui.cHTML('#SRDotDX_options_confirmPasteSize'); var rbUnvisitedPruningAggressive = SRDotDX.gui.cHTML('#FPX_options_unvisitedPruningAggressive'); var rbUnvisitedPruningModerate = SRDotDX.gui.cHTML('#FPX_options_unvisitedPruningModerate'); var rbUnvisitedPruningSlow = SRDotDX.gui.cHTML('#FPX_options_unvisitedPruningSlow'); var rbUnvisitedPruningNone = SRDotDX.gui.cHTML('#FPX_options_unvisitedPruningNone'); var optsChatSizeNormal = SRDotDX.gui.cHTML('#SRDotDX_options_chatSizeNormal'); optsChatSizeNormal.on('click', function(){ SRDotDX.gui.chatResize(300) }); var optsChatSizePlus25 = SRDotDX.gui.cHTML('#SRDotDX_options_chatSizePlus25'); optsChatSizePlus25.on('click', function(){ SRDotDX.gui.chatResize(375) }); var optsChatSizePlus50 = SRDotDX.gui.cHTML('#SRDotDX_options_chatSizePlus50'); optsChatSizePlus50.on('click', function(){ SRDotDX.gui.chatResize(450) }); switch(SRDotDX.config.chatSize) { case 300: optsChatSizeNormal.ele().checked = true; break; case 375: optsChatSizePlus25.ele().checked = true; break; case 450: optsChatSizePlus50.ele().checked = true; break; default: optsChatSizeNormal.ele().checked = true; break; } var optsChatFontNormal = SRDotDX.gui.cHTML('#SRDotDX_options_fontSizeNormal'); optsChatFontNormal.on('click', function(){ SRDotDX.gui.applyFontSize(0) }); var optsChatFontSmaller = SRDotDX.gui.cHTML('#SRDotDX_options_fontSizeSmaller'); optsChatFontSmaller.on('click', function(){ SRDotDX.gui.applyFontSize(2) }); var optsChatFontBigger = SRDotDX.gui.cHTML('#SRDotDX_options_chatSizeBigger'); optsChatFontBigger.on('click', function(){ SRDotDX.gui.applyFontSize(1) }); switch(SRDotDX.config.fontNum) { case 2: optsChatFontSmaller.ele().checked = true; break; case 1: optsChatFontBigger.ele().checked = true; break; default: optsChatFontNormal.ele().checked = true; break; } var optsChatHideScrollbar = SRDotDX.gui.cHTML('#SRDotDX_options_hideScrollbar'); optsChatHideScrollbar.ele().checked = SRDotDX.config.hideScrollBar; optsChatHideScrollbar.on('click', function(){ SRDotDX.config.hideScrollBar = this.checked; SRDotDX.config.save(false); SRDotDX.gui.chatResize(); }); var optsHideKongForum = SRDotDX.gui.cHTML('#options_hideKongForum'); optsHideKongForum.ele().checked = SRDotDX.config.hideKongForum; optsHideKongForum.on('click', function(){ SRDotDX.config.hideKongForum = this.checked; SRDotDX.gui.cHTML('#DotDX_forum').html('div.game_page_wrap {padding-top: 16px; margin-top: 14px !important; background: #333 !important; display: ' + (SRDotDX.config.hideKongForum ? 'none' : 'block') + '}',true) }); var optsHideGameDetails = SRDotDX.gui.cHTML('#options_hideGameDetails'); optsHideGameDetails.ele().checked = SRDotDX.config.hideGameDetails; optsHideGameDetails.on('click', function(){ SRDotDX.config.hideGameDetails = this.checked; SRDotDX.gui.cHTML('#DotDX_details').html('div.game_details_outer {margin-top: 14px !important; width: 900px !important; border: solid 20px #333 !important; display: ' + (SRDotDX.config.hideGameDetails ? 'none' : 'block') + '}',true) }); var optsHideGameTitle = SRDotDX.gui.cHTML('#options_hideGameTitle'); optsHideGameTitle.ele().checked = SRDotDX.config.hideGameTitle; optsHideGameTitle.on('click', function(){ SRDotDX.config.hideGameTitle = this.checked }); var optsTrueMsgCount = SRDotDX.gui.cHTML('#options_trueMsgCount'); optsTrueMsgCount.ele().checked = SRDotDX.config.kongMsg; optsTrueMsgCount.on('click', function(){ SRDotDX.config.kongMsg = this.checked }); if(SRDotDX.config.kongMsg) SRDotDX.gui.setMessagesCount(); var optsHideGameTab = SRDotDX.gui.cHTML('#options_hideGameTab'); optsHideGameTab.ele().checked = SRDotDX.config.hideGameTab; optsHideGameTab.on('click', function(){ SRDotDX.config.hideGameTab = this.checked; SRDotDX.gui.applyTabs() }); var optsHideAccTab = SRDotDX.gui.cHTML('#options_hideAccTab'); optsHideAccTab.ele().checked = SRDotDX.config.hideAccTab; optsHideAccTab.on('click', function(){ SRDotDX.config.hideAccTab = this.checked; SRDotDX.gui.applyTabs() }); var optsDotdxTabName = SRDotDX.gui.cHTML('#options_dotdxTabName'); optsDotdxTabName.ele().value = SRDotDX.config.dotdxTabName; optsDotdxTabName.on('keyup', function(){ SRDotDX.config.dotdxTabName = this.value; SRDotDX.gui.applyTabs() }); var optsChatThemeLightGrey = SRDotDX.gui.cHTML('#theme_lightGrey'); optsChatThemeLightGrey.on('click', function(){ SRDotDX.gui.applyTheme(0) }); var optsChatThemeCrimsonBlack = SRDotDX.gui.cHTML('#theme_crimsonBlack'); optsChatThemeCrimsonBlack.on('click', function(){ SRDotDX.gui.applyTheme(1) }); switch(SRDotDX.config.themeNum) { case 1: optsChatThemeCrimsonBlack.ele().checked = true; break; case 0: default: optsChatThemeLightGrey.ele().checked = true; break; } //Opts -> Sidebar Options var optsSbEnable = SRDotDX.gui.cHTML('#options_sbEnable'); optsSbEnable.ele().checked = SRDotDX.config.sbEnable; optsSbEnable.on('click', function(){ SRDotDX.config.sbEnable = this.checked; SRDotDX.gui.applySidebarUI(this.checked?1:-1); SRDotDX.config.save(false) }); var optsSbRightSide = SRDotDX.gui.cHTML('#options_sbRightSide'); optsSbRightSide.ele().checked = SRDotDX.config.sbRightSide; optsSbRightSide.on('click', function(){ SRDotDX.config.sbRightSide = this.checked; SRDotDX.gui.applySidebarUI(2); SRDotDX.config.save(false) }); //var optsCbDisable = SRDotDX.gui.cHTML('#options_cbDisable'); //optsCbDisable.ele().checked = SRDotDX.config.cbDisable; //optsCbDisable.on('click', function(){ SRDotDX.config.cbDisable = this.checked; SRDotDX.config.save(false) }); var optsSlimSB = SRDotDX.gui.cHTML('#options_sbSlim'); optsSlimSB.ele().checked = SRDotDX.config.sbSlim; optsSlimSB.on('click', function(){ SRDotDX.config.sbSlim = this.checked; SRDotDX.config.save(false); SRDotDX.gui.toggleSlimSB(); }); if (SRDotDX.config.markMyRaidsVisted) { optsMarkMyRaidsVisited.ele().checked = true } if (SRDotDX.config.formatLinkOutput) { optsFormatLinkOutput.ele().checked = 'checked'; } if (SRDotDX.config.markImportedVisited) { optsMarkImportedVisited.ele().checked = 'checked'; } if (SRDotDX.config.whisperTo != '') { optsWhisperTo.ele().value = SRDotDX.config.whisperTo; } if (SRDotDX.config.autoImportPaste) { optsAutoImportPaste.ele().checked = 'checked'; } else { optsConfirmForLargePaste.ele().disabled=true; optsConfirmPasteSize.ele().disabled=true} if (SRDotDX.config.confirmForLargePaste) { optsConfirmForLargePaste.ele().checked = 'checked'; } else { optsConfirmPasteSize.ele().disabled=true } if (SRDotDX.config.confirmPasteSize>0) { optsConfirmPasteSize.ele().value = SRDotDX.config.confirmPasteSize } if (SRDotDX.config.confirmDeletes) { optsConfirmDeletes.ele().checked = 'checked' } if (SRDotDX.config.bckColor) { SRDotDX.gui.cHTML('#SRDotDX_colors_background').ele().value = SRDotDX.config.bckColor } switch(SRDotDX.config.unvisitedRaidPruningMode) { case 0: rbUnvisitedPruningAggressive.ele().checked = true; break; case 1: rbUnvisitedPruningModerate.ele().checked = true; break; case 2: rbUnvisitedPruningSlow.ele().checked = true; break; case 3: rbUnvisitedPruningNone.ele().checked = true; break; default: rbUnvisitedPruningAggressive.ele().checked = true; break; } if (SRDotDX.config.hideVisitedRaids) {optsHideVRaids.ele().checked = 'checked'} if (SRDotDX.config.hideBotLinks) { optsHideBRaids.ele().checked = 'checked' } if (SRDotDX.config.hideRaidLinks) { optsHideARaids.ele().checked = true; optsHideVRaids.ele().disabled = true; optsHideBRaids.ele().disabled = true; } optsConfirmDeletes.ele().addEventListener('click', function () { SRDotDX.config.confirmDeletes = this.checked }); optsAutoImportPaste.ele().addEventListener('click', function (){ SRDotDX.config.autoImportPaste = this.checked; if(!this.checked){ optsConfirmForLargePaste.ele().checked = false; SRDotDX.config.confirmForLargePaste = false } optsConfirmForLargePaste.ele().disabled = !this.checked; optsConfirmPasteSize.ele().disabled = !this.checked; }); optsConfirmForLargePaste.ele().addEventListener('click', function () { optsConfirmPasteSize.ele().disabled = !this.checked; SRDotDX.config.confirmForLargePaste = this.checked }); optsConfirmPasteSize.ele().addEventListener('change', function () { if(isNumber(this.value)) SRDotDX.config.confirmPasteSize = parseInt(this.value); else SRDotDX.gui.errorMessage('Paste size must be a number') }); optsMarkImportedVisited.ele().addEventListener("click", function() { SRDotDX.config.markImportedVisited = this.checked; }); optsWhisperTo.ele().addEventListener("change", function(){ console.log("[SRDotDX] Whisper person changed to " + this.value); SRDotDX.config.whisperTo = this.value; }); SRDotDX.gui.cHTML('#SRDotDX_colors_background').ele().addEventListener("change", function(){ SRDotDX.config.bckColor = this.value; }); optsFormatLinkOutput.ele().addEventListener("click", function(){ SRDotDX.config.formatLinkOutput = this.checked; }); optsMarkMyRaidsVisited.ele().addEventListener("click", function() { SRDotDX.config.markMyRaidsVisted = this.checked; }); optsHideARaids.ele().addEventListener("click",function() { document.getElementById('SRDotDX_options_hideVisitedRaids').disabled = this.checked; document.getElementById('SRDotDX_options_hideSeenRaids').disabled = this.checked; SRDotDX.config.hideRaidLinks = this.checked; SRDotDX.gui.cHTML('#SRDotDX_raidClass').html('.SRDotDX_raid {display: ' + (this.checked ? 'none !important' : 'block') + '}', true); },true); optsHideBRaids.ele().addEventListener("click",function() { SRDotDX.gui.switchBot() },true); optsHideVRaids.ele().addEventListener("click",function() { SRDotDX.config.hideVisitedRaids = this.checked; SRDotDX.gui.cHTML('#SRDotDX_visitedRaidClass').html('.SRDotDX_visitedRaid {display: ' + (this.checked ? 'none !important' : 'block') + '}', true); },true); rbUnvisitedPruningAggressive.ele().addEventListener("click",function() { SRDotDX.config.unvisitedRaidPruningMode = 0 },true); rbUnvisitedPruningModerate.ele().addEventListener("click",function() { SRDotDX.config.unvisitedRaidPruningMode = 1 },true); rbUnvisitedPruningSlow.ele().addEventListener("click",function() { SRDotDX.config.unvisitedRaidPruningMode = 2 },true); rbUnvisitedPruningNone.ele().addEventListener("click",function() { SRDotDX.config.unvisitedRaidPruningMode = 3 },true); console.log("{!} After Event listeners func"); //CHAT TAB CLICK SCROLL (id=chat_tab, class=chat_message_window) SRDotDX.gui.cHTML('#chat_tab').ele().addEventListener("click", function () { setTimeout(function(){ var els = document.getElementsByClassName('chat_message_window'), el; i = els.length; while (i--) { el = els[i]; console.log("[SRDotDX] Scrolling chat window " + el.scrollTop + " : " + el.scrollHeight); el.scrollTop = el.scrollHeight; } SRDotDX.gui.selectRaidsToJoin(); },50); },true); //RAIDS TAB CLICK EVENT LISTENER SRDotDX.gui.cHTML('#lots_tab').ele().addEventListener("click", function(){setTimeout(SRDotDX.gui.selectRaidsToJoin,50)},true); //FriendShare SRDotDX.gui.refreshFriends(); // Filtering tab SRDotDX.gui.createFilterTab(); /* var i = 0, isChecked, raid, parentTableId = '', parentTable = ''; while (i < SRDotDX.raidArray.length) { raid = SRDotDX.raids[SRDotDX.raidArray[i]]; parentTableId = 'FPX_options_cbs_' + raid.id; parentTable = SRDotDX.gui.cHTML('tr').set({id: parentTableId}).html(' \ ' + raid.name + ' \ \ \ \ \ ', false); if (raid.stat == 'H') parentTable.attach('to','FPXRaidFilterWhatGuild'); else if (raid.stat == 'ESH') parentTable.attach('to','FPXRaidFilterWhatSpecial'); else if (raid.size > 1 && raid.size < 50) parentTable.attach('to','FPXRaidFilterWhatSmall'); else if (raid.size == 50) parentTable.attach('to','FPXRaidFilterWhatMedium'); else if (raid.size == 100) parentTable.attach('to','FPXRaidFilterWhatLarge'); else if (raid.size == 250) parentTable.attach('to','FPXRaidFilterWhatEpic'); else if (raid.size == 500) parentTable.attach('to','FPXRaidFilterWhatColossal'); else if (raid.size == 800) parentTable.attach('to','FPXRaidFilterWhatGigantic'); for (var j=0; j<4; j++) { var cbId = "cb_filter_" + raid.id + '_' + j; isChecked = !SRDotDX.config.filters[serverMode-1][raid.id][j]; cb = SRDotDX.gui.cHTML('#' + cbId); cb.ele().checked = isChecked; cb.ele().addEventListener("click",function() { var raidId = '', diffIndex = '', reg = /cb_filter_([0-9a-z_]+)_([0-9])/i; var ele = SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML; i = reg.exec(this.id); if (i != null) { raidId = i[1]; diffIndex = parseInt(i[2]) } SRDotDX.config.setFilter(raidId,diffIndex,!this.checked); reg = new RegExp('.DotDX_fltChat_'+raidId+'_'+diffIndex+', ','g'); if(SRDotDX.config.filterChatLinks) { if (!this.checked && !reg.test(ele)) ele = '.DotDX_fltChat_' + raidId + '_' + diffIndex + ', ' + ele; else if (this.checked) ele = ele.replace(reg,''); } reg = new RegExp('.DotDX_fltList_'+raidId+'_'+diffIndex+', ','g'); if(SRDotDX.config.filterRaidList) { if (!this.checked && !reg.test(ele)) ele = '.DotDX_fltList_' + raidId + '_' + diffIndex + ', ' + ele; else if (this.checked) ele = ele.replace(reg,''); } SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML = ele; var cbAllId = "cb_filter_" + raidId + '_all'; var f1 = SRDotDX.config.filters[serverMode-1][raidId][0]; var f2 = SRDotDX.config.filters[serverMode-1][raidId][1]; var f3 = SRDotDX.config.filters[serverMode-1][raidId][2]; var f4 = SRDotDX.config.filters[serverMode-1][raidId][3]; if ((!f1 && !f2 && !f3 && !f4) || (f1 && f2 && f3 && f4)) { var cb = SRDotDX.gui.cHTML('#' + cbAllId); cb.ele().checked = this.checked } },true); } var allCbId = "cb_filter_" + raid.id + "_all"; isChecked = !(SRDotDX.config.filters[serverMode-1][raid.id][0] && SRDotDX.config.filters[serverMode-1][raid.id][1] && SRDotDX.config.filters[serverMode-1][raid.id][2] && SRDotDX.config.filters[serverMode-1][raid.id][3]); var cb = SRDotDX.gui.cHTML('#' + allCbId); cb.ele().checked = isChecked; cb.on("click",function() { var reg = /cb_filter_([0-9a-z_]+)_all/i, i = reg.exec(this.id), raidId = '', j = 0, cbId, subcb, ele = SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML; if (i != null) raidId = i[1]; while (j < 4) { cbId = 'cb_filter_' + raidId + '_' + j; subcb = SRDotDX.gui.cHTML('#' + cbId); subcb.ele().checked = this.checked; SRDotDX.config.filters[serverMode-1][raidId][j] = !this.checked; reg = new RegExp('.DotDX_fltChat_'+raidId+'_'+j+', ','g'); if(SRDotDX.config.filterChatLinks) { if (!this.checked && !reg.test(ele)) ele = '.DotDX_fltChat_' + raidId + '_' + j + ', ' + ele; else if (this.checked) ele = ele.replace(reg,''); } reg = new RegExp('.DotDX_fltList_'+raidId+'_'+j+', ','g'); if(SRDotDX.config.filterRaidList) { if (!this.checked && !reg.test(ele)) ele = '.DotDX_fltList_' + raidId + '_' + j + ', ' + ele; else if (this.checked) ele = ele.replace(reg,''); } SRDotDX.gui.cHTML('#DotDX_filters').ele().innerHTML = ele; j++ } },true); i++ } */ var filterChatCb = SRDotDX.gui.cHTML('#SRDotDX_options_perRaidFilterLinks'); filterChatCb.on("click", function() { SRDotDX.config.filterChatLinks = this.checked; SRDotDX.gui.toggleFiltering();},true).ele().checked = SRDotDX.config.filterChatLinks; var filterListCb = SRDotDX.gui.cHTML('#SRDotDX_options_perRaidFilterRaidList'); filterListCb.on("click", function() { SRDotDX.config.filterRaidList = this.checked; SRDotDX.gui.toggleFiltering();},true).ele().checked = SRDotDX.config.filterRaidList; SRDotDX.gui.cHTML('li').set({class: 'rate'}).html('Reload Game', false).attach('after','quicklinks_favorite_block'); SRDotDX.gui.cHTML('li').set({class: 'rate'}).html(''+(SRDotDX.config.hideWChat?'Show World Chat':'Hide World Chat')+'', false).attach('after','quicklinks_play_later_block'); //Chat buttons overlay div //document.getElementsByClassName('chat_message_window')[0].setAttribute('id','chat_message_window'); var hd = document.getElementById('chat_window_header').getElementsByClassName('room_name_container')[0].innerHTML; document.getElementById('chat_window_header').getElementsByClassName('room_name_container')[0].innerHTML = hd + '
DotDX:
'; //for (i=0; iJoinImportReloadBot',true).attach("after",'chat_message_window'); //setTimeout(SRDotDX.gui.FPXFilterRaidListByName, 2500); setTimeout(SRDotDX.gui.BeginDeletingExpiredUnvisitedRaids, 10000); //setTimeout(SRDotDX.purge, 20000); SRDotDX.util.updateUser(true); console.log('[DotDX] DotDeXtension loading complete'); SRDotDX.gui.doStatusOutput('Loaded successfully', 2000, false); //setTimeout(SRDotDX.gui.chatResize,5000,SRDotDX.config.chatSize); setTimeout(SRDotDX.config.save, 2000); } else { setTimeout(SRDotDX.gui.load, 500)} }, fsEleClick: function(e) { e = e || window.event; var el = e.target.id.split(':'); if (el[0] == 'fs') { SRDotDX.config.friendUsers[el[1]][el[2]] = e.target.checked; } }, FPXraidLinkClick: function(id) { if(!SRDotDX.gui.joining) { //SRDotDX.request.kongData = 'kongregate_username='+holodeck._active_user.username()+'&kongregate_user_id='+holodeck._active_user.id()+'&kongregate_game_auth_token='+holodeck._active_user.gameAuthToken(); SRDotDX.request.joinRaid(SRDotDX.config.raidList[id]); } else SRDotDX.gui.joinRaidList.push(SRDotDX.gui.GetRaid(id)); }, FPXLandButtonHandler: function (ele, name) { var x = name.charAt(name.length-1), sign = 1; if(name.charAt(3)!='p')sign=-1; document.FPXLandForm.elements["tf_"+x].value = parseInt(document.FPXLandForm.elements["tf_"+x].value, 10)+(10*sign); SRDotDX.gui.FPXLandUpdater(); }, FPXLandUpdater: function () { var owned = [0,0,0,0,0,0,0,0,0], els = document.FPXLandForm, i = 9; while (i--) owned[i] = parseInt(els.elements['tf_'+(i+1)].value,10); var ratio = FPX.LandCostRatio(owned), best = 0, cn; i = 9; while (i--) { cn = document.getElementById('b_'+(i+1)).className; if (cn.indexOf('landpmbutton ') == -1) document.getElementById('b_'+(i+1)).className = cn.replace('landpmbuttonhigh','landpmbutton'); //document.getElementById('b_'+(i+1)).prevClassName = 'landpmbutton'; if (ratio[i] > ratio[best]) best = i; } cn = document.getElementById('b_'+(best+1)).className; document.getElementById('b_'+(best+1)).className = cn.replace('landpmbutton','landpmbuttonhigh'); }, FPXLandButtonSave: function () { var els = document.FPXLandForm, i = 9; while (i--) SRDotDX.config.FPXLandOwnedCount[i] = els.elements['tf_'+(i+1)].value; SRDotDX.config.save(false); SRDotDX.gui.doStatusOutput('Land count saved!'); }, FPXraidListMouseDown: function(e) { e.preventDefault(); e.stopPropagation(); var classtype = e.target.className, con; e = e || window.event; console.log("[SRDotDX] Clicked on el with class:" + classtype + ", mouse button:" + e.which); if (e.which == 1) { switch (classtype) { case 'dotdxRaidListDelete': SRDotDX.gui.deleteRaid(e.target.parentNode); break; case 'DotDX_RaidLink': SRDotDX.gui.FPXraidLinkClick(e.target.parentNode.getAttribute("raidid")); break; } } }, chatWindowContextMenu: function (e) { e = e || window.event; var clickedClass = e.target.className.split(" "), nick = ""; console.log('[DotDX] Chat window menu [' + e.target.className + ']'); if (clickedClass[0] == 'username' && clickedClass[1] != 'spritesite') { e.preventDefault(); e.stopPropagation(); nick = clickedClass[1]; var frTxt = 'Friend', size = '196px'; if (SRDotDX.config.friendUsers[nick]) frTxt = 'unFriend', size = '210px'; var uMenu = document.getElementById(clickedClass[clickedClass.length-1]); uMenu.innerHTML = ''+nick+''+frTxt+'SlapMute'; uMenu.style.maxWidth = "220px"; } return false; }, chatWindowMouseDown: function (e) { e = e || window.event; var clickedClass = e.target.className.split(" "), nick = ""; console.log('[DotDX] Chat window (' + e.which + ') [' + e.target.className + ']'); switch (clickedClass[0]) { case 'username': if (clickedClass[1] != 'spritesite') { e.preventDefault(); e.stopPropagation(); nick = clickedClass[1]; if (e.which == 1) { console.log("[DotDX] Whisp to user with nick [" + nick + "]"); holodeck.chatWindow().insertPrivateMessagePrefixFor(nick); } } break; case 'chatRaidLink': if(e.which == 1) { e.preventDefault(); e.stopPropagation(); var raid = clickedClass[1].split("|"); var rObj = {id:raid[0],hash:raid[1],boss:raid[2],diff:raid[3],sid:raid[4]}; if(!SRDotDX.gui.joining) { //SRDotDX.request.kongData = 'kongregate_username='+holodeck._active_user.username()+'&kongregate_user_id='+holodeck._active_user.id()+'&kongregate_game_auth_token='+holodeck._active_user.gameAuthToken(); SRDotDX.request.joinRaid(rObj); } else SRDotDX.gui.joinRaidList.push(rObj); } break; case 'dotdx_chat_button': if(e.which == 1) { switch(e.target.id) { case 'dotdx_chat_join': SRDotDX.gui.joinSelectedRaids(true); break; case 'dotdx_chat_import': SRDotDX.gui.importFromServer(); break; case 'dotdx_chat_bot': SRDotDX.gui.switchBot(); break; case 'dotdx_chat_reload': SRDotDX.reload(); break; } } break; case 'user': if(e.which == 1) { var classTokens = clickedClass[1].split("_"); switch(classTokens[1]) { case 'slap': var num = Math.round((Math.random()*(SRDotDX.slapSentences.length-1))); SRDotDX.gui.FPXdoWork('*' + SRDotDX.slapSentences[num].replace(//g,classTokens[2]) + '*'); break; case 'mute': SRDotDX.config.mutedUsers[classTokens[2]] = true; SRDotDX.config.save(false); break; case 'friend': if (typeof SRDotDX.config.friendUsers[classTokens[2]] == 'object') delete SRDotDX.config.friendUsers[classTokens[2]]; else SRDotDX.config.friendUsers[classTokens[2]] = [false,false,false,false,true]; SRDotDX.config.save(false); SRDotDX.gui.refreshFriends(); break; case 'name': holodeck.showMiniProfile(classTokens[2]); break; } e.target.parentNode.style.maxWidth = "0"; } } }, FPXraidLinkMouseDown: function (e,param1,param2,isChat) { e = e || window.event; if(isChat && e.which == 1) SRDotDX.gui.FPXraidLinkClick(param1); }, raidListItemUpdateTimeSince: function(id) { var raid = SRDotDX.config.raidList[id]; if (typeof raid == 'object') document.getElementById('timeSince_' + id).innerHTML = timeSince(new Date(raid.timeStamp)) }, raidListItemUpdate: function(id) { var raid = SRDotDX.config.raidList[id]; if (typeof raid == 'object') { var ele = document.getElementById("raid_list").firstChild; while (ele) { if (ele.getAttribute("raidid") == id) { ele.getElementsByClassName("DotDX_RaidListVisited")[0].innerHTML = (raid.visited ? '★':''); break; } ele = ele.nextSibling; } } else SRDotDX.gui.raidListItemRemoveById(id); }, raidListItemRemoveById: function (id) { var ele = document.getElementById('DotDX_' + id); if (ele) ele.parentNode.removeChild(ele); }, toggleCSS: function (p) { if (p) { document.head.removeChild(document.getElementById(p.id)); SRDotDX.gui.cHTML("style").set({type: "text/css", id: p.id}).text(p.cls).attach("to",document.head); } }, toggleRaid: function(type,id,tog) { var d = document.getElementsByClassName("DotDX_raidId_" + id); if (typeof SRDotDX.config.raidList[id] == 'object') { var raid = SRDotDX.config.raidList[id]; raid = SRDotDX.getRaidDetails("&kv_difficulty="+raid.diff+"&kv_hash="+raid.hash+"&kv_raid_boss="+raid.boss+"&kv_raid_id="+raid.id); } var i = d.length; while (i--) { if (tog && d[i].className.indexOf('DotDX_' + type + 'Raid') < 0) d[i].className += ' DotDX_' + type + 'Raid'; else if (!tog && d[i].className.indexOf('DotDX_' + type + 'Raid') >= 0) d[i].className = d[i].className.replace(new RegExp('DotDX_' + type + 'Raid( |$)','i'),''); if (typeof raid == 'object') d[i].getElementsByTagName('a')[0].innerHTML = raid.linkText(); } } }, nukeRaid: function (id) { if (SRDotDX.config.raidList[id]) { SRDotDX.config.raidList[id].nuked = true; SRDotDX.gui.toggleRaid('nuked', id, true) } }, searchPatterns: { z1: ['kobold','scorp','ogre'], z2: ['rhino','alice','lurker'], z3: ['4ogre','squid','batman','drag','tainted'], z4: ['bmane','3dawg','hydra','sircai','tyranthius'], z5: ['ironclad','zombiehorde','stein','bogstench','nalagarst'], z6: ['gunnar','nidhogg','kang','ulfrik','kalaxia'], z7: ['maraak','erakka_sak','wexxa','guilbert','bellarius'], z8: ['hargamesh','grimsly','rift','sisters','mardachus'], z9: ['mesyra','nimrod','phaedra','tenebra','valanazes'], "z1-9": ['kobold','scorp','ogre','rhino','alice','lurker','4ogre','squid','batman','drag','tainted','bmane','3dawg','hydra','sircai','tyranthius','ironclad','zombiehorde','stein','bogstench','nalagarst','gunnar','nidhogg','kang','ulfrik','kalaxia','maraak','erakka_sak','wexxa','guilbert','bellarius','hargamesh','grimsly','rift','sisters','mardachus','mesyra','nimrod','phaedra','tenebra','valanazes'], "z9.5": ['pumpkin','jacksrevenge1'], "z9.7": ['hellemental','shadow'], z10: ['krugnug','tomb_gargoyle','leonine_watcher','centurion_marius','caracalla'], z14: ['zugen','gulkinari','verkiteia','cannibal_barbarians'], z15: ['korxun','xerkara','shaar','nereidon','drulcharus'], farm: ['maraak','erakka_sak','wexxa','guilbert','bellarius','drag','tainted','ogre','scorp','baroness'], flute: ['kobold','scorp','ogre','rhino','alice','lurker','4ogre','squid','batman','drag','tainted','harpy','spider','djinn','evilgnome','basilisk','roc','gladiators','chimera','crabshark','gorgon','warewolfpack','blobmonster','giantgolem'], tower: ['thaltherda','hurkus','malleus'], small: ['kobold','rhino','bmane','4ogre','serpina','dragons_lair','gunnar','hargamesh','ironclad','krugnug','maraak','thaltherda','zugen','nereidon','mestr_rekkr_rematch','ghostly_alchemist'], medium: ['alice','erakka_sak','grimsly','3dawg','scorp','nidhogg','tomb_gargoyle','squid','tisiphone','zombiehorde','baroness','hurkus','gulkinari','korxun','drunken_ragunt','shadow'], large: ['ogre','batman','hydra','kang','leonine_watcher','lurker','rift','stein','wexxa','teremarthu','zralkthalat','malleus','verkiteia','drulcharus','gigantomachy'], epic: ['bogstench','centurion_marius','drag','tainted','guilbert','pumpkin','jacksrevenge1','mesyra','nimrod','phaedra','sircai','sisters','ulfrik','frogmen_assassins','burbata','yydians_sanctuary','grundus','shaar','tuxargus','nylatrix','rannveig'], colossal: ['bellarius','caracalla','kalaxia','tyranthius','mardachus','nalagarst','tenebra','valanazes','siculus','ruzzik','cannibal_barbarians','vortex_abomination','xerkara','keron','clockwork_dragon','krxunara','hellemental'], gigantic: ['imryx','trekex','gataalli_huxac'], glyph: ['maraak','erakka_sak','wexxa','guilbert','bellarius'], citadel: ['thaltherda','hurkus','malleus','yydians_sanctuary','clockwork_dragon','krxunara'], festival: ['vortex_abomination','drunken_ragunt','mestr_rekkr_rematch'], aquatic: ['dirthax','frogmen_assassins','lurker','nidhogg','crabshark','squid','thaltherda','nereidon','krxunara','trekex'], beastman: ['bmane','burbata','frogmen_assassins','batman','war_boar','hargamesh','hurkus','krugnug','malleus','scorp','ruzzik','squid','korxun','shaar','nereidon','drulcharus','trekex'], bludheim: ['gunnar','nidhogg','kang','ulfrik','kalaxia'], colosseum: ['gladiators','serpina','crabshark','tisiphone','chimera'], construct: ['cedric','erakka_sak','giantgolem','leonine_watcher','tomb_gargoyle','stein','yydians_sanctuary','clockwork_dragon'], demon: ['apoc_demon','3dawg','tyranthius','lunacy','salome','sircai','blobmonster','malchar','zralkthalat','krxunara','adrastos','hellemental'], dragon: ['bellarius','corrupterebus','dragons_lair','echidna','drag','kalaxia','krykagrius','mardachus','mesyra','nalagarst','nimrod','phaedra','rhalmarius_the_despoiler','tainted','tenebra','thaltherda','tisiphone','grundus','valanazes','verkiteia','winter_kessov','xerkara','nereidon','drulcharus','keron','tuxargus','nylatrix','clockwork_dragon','imryx'], giant: ['gigantomachy','gataalli_huxac'], human: ['agony','rhino','gladiators','baroness','warewolfpack','alice','cannibal_barbarians','guilbert','gunnar','pumpkin','jacksrevenge1','lunacy','slaughterers','ulfrik','mestr_rekkr_rematch','rannveig','adrastos','legion_of_darkness'], magical: ['djinn','grimsly','hargamesh','fairy_prince','rift','sisters','vortex_abomination','grundus','shadow'], ogre: ['ogre','4ogre','felendis','zugen','korxun','drunken_ragunt'], qwiladrian: ['gulkinari','teremarthu','vortex_abomination'], ryndor: ['bmane','3dawg','hydra','sircai','tyranthius'], siege: ['echidna','ulfrik','yydians_sanctuary','drunken_ragunt'], undead: ['agony','bogstench','serpina','ironclad','malleus','nalagarst','stein','siculus','zombiehorde','caracalla','centurion_marius','ghostly_alchemist'], underground: ['maraak','erakka_sak','wexxa','guilbert','bellarius','spider','tomb_gargoyle','leonine_watcher','centurion_marius','caracalla','dragons_lair','kang','3dawg','lurker','salome','stein','imryx'] }, shortcuts: { bb: { n: 'bb', bn: 'BB', desc: 'Briseis\' Blessing [magic]' }, bok: { n: 'bok', bn: 'BoK', desc: 'Book of Knowledge [consumable]' }, bsi: { n: 'bsi', bn: 'BSI', desc: 'Battle Strength Index
(Base Attack + Base Defense) / Level' }, ck: { n: 'ck', bn: 'CK', desc: 'Chryseis\' Kiss [magic]' }, dah: { n: 'dah', bn: 'Dah', desc: 'Dahrizon [general]' }, dl: { n: 'dl', bn: 'DL', desc: 'Dragons Lair [raid]' }, gg: { n: 'gg', bn: 'GG', desc: 'Golden Garden [equip]'}, gid: { n: 'gid', bn: 'GID', desc: 'Greater Impending Doom [magic]' }, gl: { n: 'gl', bn: 'GL', desc: 'Greenleaf [equip]'}, il: { n: 'il', bn: 'IL', desc: 'Insanity Laughs [magic]' }, lsi: { n: 'lsi', bn: 'LSI', desc: 'Leveling Speed Index
(Base Stamina * 2 + Base Energy) / Level' }, mach: { n: 'mach', bn: 'Mach', desc: 'Machaon the Healer [general]' }, nm: { n: 'nm', bn: 'NM', desc: 'Nightmare [difficulty]' }, pc: { n: 'pc', bn: 'PC', desc: 'Planet Coins [currency]' }, perc: { n: 'perc', bn: 'perc', desc: 'Perception [stat]' }, qm: { n: 'qm', bn: 'QM', desc: 'Quicken Mind [magic]' }, sock: { n: 'sock', bn: 'SoCK', desc: 'Sword of Conquered Kingdoms [equip]' }, sor: { n: 'sor', bn: 'SoR', desc: 'Shield of Ryndor [equip]' }, sp: { n: 'sp', bn: 'SP', desc: 'Stat Points [stat]' }, wr: { n: 'wr', bn: 'WR', desc: 'World Raid [raid]' } }, raids: { adrastos: {name: 'Adrastos of the Kavala ', shortname: 'Adrastos', id: 'adrastos', type: 'Human, Demon', stat: 'H', size:101, nd:5, duration:192, health: [5000000000,6250000000,8750000000,10000000000,0,0], lt: ['keron','keron','keron','keron']}, agony: {name: 'Agony', shortname: 'Agony', id: 'agony', type: 'Undead, Human', stat: 'H', size:101, nd:5, duration:168, health: [700000000,875000000,1120000000,1400000000,0,0]}, apoc_demon: {name: 'Apocolocyntosised Demon', shortname: 'Apoc', id: 'apoc_demon', type: 'Demon', stat: 'H', size:50, nd:3, duration:144, health: [500000000,750000000,1000000000,2000000000,0,0], lt: ['apoc','apoc','apoc','apoc']}, djinn: {name: 'Al-Azab', shortname: 'Azab', id: 'djinn', type: 'Magical Creature', stat: 'H', size:100, nd:4, duration:168, health: [55000000,68750000,88000000,110000000,0,0]}, spider: {name: 'Arachna', shortname: 'Arachna', id: 'spider', type: 'Underground', stat: 'H', size:50, nd:3, duration:144, health: [22000000,27500000,35200000,44000000,0,0]}, rhino: {name: 'Ataxes', shortname: 'Ataxes', id: 'rhino', type: 'Human', stat: 'S', size:10, nd:2, duration:120, health: [2000000,2500000,3200000,4000000,0,0]}, gladiators: {name: 'Batiatus Gladiators ', shortname: 'Gladiators', id: 'gladiators', type: 'Colosseum, Human', stat: 'H', size:10, nd:2, duration:120, health: [12000000,15000000,19200000,24000000,0,0]}, bellarius: {name: 'Bellarius the Guardian', shortname: 'Bellarius', id: 'bellarius', type: 'Dragon, Underground',stat: 'S', size:500, nd:6, duration:96, health: [900000000,1125000000,1440000000,1800000000,0,0]}, baroness: {name: 'The Baroness', shortname: 'Baroness', id: 'baroness', type: 'Human', stat: 'S', size:50, nd:3, duration:60, health: [68000000,85000000,108800000,136000000,0,0]}, werewolfpack: {name: 'The Black Moon Pack', shortname: 'Black Moon', id: 'werewolfpack', type: 'Human', stat: 'H', size:50, nd:3, duration:144, health: [135000000,168750000,216000000,270000000,0,0]}, alice: {name: 'Bloody Alice', shortname: 'Alice', id: 'alice', type: 'Human', stat: 'S', size:50, nd:3, duration:120, health: [15000000,18750000,24000000,30000000,0,0]}, bogstench: {name: 'Bogstench', shortname: 'Bogstench', id: 'bogstench', type: 'Undead', stat: 'S', size:250, nd:5, duration:96, health: [450000000,562500000,720000000,900000000,0,0]}, '4ogre': {name: 'Briareus the Butcher', shortname: 'Briareus', id: '4ogre', type: 'Ogre', stat: 'S', size:10, nd:2, duration:72, health: [4500000,5625000,7200000,9000000,0,0]}, bmane: {name: 'Bloodmane', shortname: 'Bloodmane', id: 'bmane', type: 'Beastman, Ryndor', stat: 'S', size:10, nd:2, duration:72, health: [7000000,8750000,11200000,14000000,0,0]}, burbata: {name: 'Burbata the Spine-Crusher', shortname: 'Burbata', id: 'burbata', type: 'Beastman', stat: 'S', size:250, nd:5, duration:96, health: [1000000000,2000000000,3500000000,5000000000,0,0], lt: ['z10','z10','z10','z10']}, cannibal_barbarians:{name: 'Cannibal Barbarians', shortname: 'Cannibals', id: 'cannibal_barbarians', type: 'Human', stat: 'S', size:500, nd:6, duration:128, health: [60000000000,90000000000,180000000000,240000000000,0,0], lt: ['canib','canib','canib','canib']}, cedric: {name: 'Cedric the Smashable', shortname: 'Cedric', id: 'cedric', type: 'Construct', stat: 'ESH', size:90000,nd:0, duration:24, health: ['Unlimited','Unlimited','Unlimited','Unlimited','Unlimited','Unlimited']}, caracalla: {name: 'Caracalla', shortname: 'Caracalla', id: 'caracalla', type: 'Undead, Underground',stat: 'S', size:500, nd:6, duration:128, health: [50000000000,75000000000,150000000000,200000000000,0,0], lt: ['cara','cara','cara','cara']}, harpy: {name: 'Celeano', shortname: 'Celenao', id: 'harpy', type: '', stat: 'H', size:10, nd:2, duration:120, health: [3000000,3750000,4800000,6000000,0,0]}, centurion_marius: {name: 'Centurion Marius', shortname: 'Marius', id: 'centurion_marius', type: 'Undead, Underground',stat: 'S', size:250, nd:5, duration:96, health: [10000000000,12000000000,16000000000,40000000000,0,0], lt: ['z10','z10','z10','z10']}, kobold: {name: 'Chieftain Horgrak', shortname: 'Horgrak', id: 'kobold', type: '', stat: 'S', size:10, nd:2, duration:168, health: [150000,187500,240000,300000,0,0]}, clockwork_dragon: {name: 'Clockwork Dragon', shortname: 'Clock Dragon', id: 'clockwork_dragon', type: 'Construct, Dragon', stat: 'S', size:500, nd:6, duration:128, health: [70000000000,140000000000,210000000000,280000000000], lt: ['clock','clock','clock','clock']}, corrupterebus: {name: 'Corrupted Erebus', shortname: 'Cbus', id: 'corrupterebus', type: 'Dragon', stat: 'ESH', size:90000,nd:0, duration:96, health: ['Unlimited','Unlimited','Unlimited','Unlimited','Unlimited','Unlimited']}, serpina: {name: 'Countess Serpina', shortname: 'Serp', id: 'serpina', type: 'Colosseum, Undead', stat: 'E', size:15, nd:2, duration:5, health: [75000000,112500000,150000000,187500000,0,0]}, basilisk: {name: 'Deathglare', shortname: 'Deathglare', id: 'basilisk', type: '', stat: 'H', size:50, nd:3, duration:144, health: [45000000,56250000,72000000,90000000,0,0]}, dirthax: {name: 'Dirthax', shortname: 'Dirthax', id: 'dirthax', type: 'Aquatic', stat: 'H', size:100, nd:4, duration:168, health: [550000000,687500000,880000000,1100000000,0,0]}, doomglare: {name: 'Doomglare', shortname: 'Doomglare', id: 'doomglare', type: '', stat: 'H', size:100, nd:4, duration:12, health: [500000000,1250000000,2000000000,3000000000,0,0], lt: ['u','u','u','u']}, dragons_lair: {name: 'Dragons Lair', shortname: 'Lair', id: 'dragons_lair', type: 'Dragon, Underground',stat: 'S', size:13, nd:2, duration:5, health: [100000000,500000000,1000000000,1500000000,0,0], lt: ['nDl','hDl','lDl','nmDl']}, drulcharus: {name: 'Drulcharus', shortname: 'Drulcharus', id: 'drulcharus', type: 'Dragon, Beastman', stat: 'S', size:100, nd:5, duration:72, health: [10000000000,15000000000,20000000000,25000000000,0,0], lt: ['z15hi','z15hi','z15hi','z15hi']}, drunken_ragunt: {name: 'Drunken Ragunt', shortname: 'Ragunt', id: 'drunken_ragunt', type: 'Siege, Ogre', stat: 'S', size:50, nd:5, duration:60, health: [8500000000,14450000000,18700000000,25500000000,0,0], lt: ['rag','rag','rag','rag']}, echidna: {name: 'Echidna', shortname: 'Echidna', id: 'echidna', type: 'Dragon, Siege', stat: 'ESH', size:90000,nd:0, duration:96, health: ['Unlimited','Unlimited','Unlimited','Unlimited','Unlimited','Unlimited']}, erakka_sak: {name: 'Erakka-Sak', shortname: 'Erakka', id: 'erakka_sak', type: 'Underground, Construct',stat: 'S', size:50, nd:3, duration:60, health: [62000000,77500000,99200000,124000000,0,0]}, giantgolem: {name: 'Euphronios', shortname: 'Euphronios', id: 'giantgolem', type: 'Construct', stat: 'H', size:101, nd:5, duration:168, health: [450000000,562500000,720000000,900000000,0,0]}, echthros: {name: 'Echthros', shortname: 'Echty', id: 'echthros', type: '', stat: 'ESH', size:90000,nd:2, duration:96, health: ['Unlimited','Unlimited','Unlimited','Unlimited','Unlimited','Unlimited']}, drag: {name: 'Erebus the Black', shortname: 'Erebus', id: 'drag', type: 'Dragon', stat: 'S', size:250, nd:5, duration:168, health: [150000000,187500000,240000000,300000000,0,0]}, frogmen_assassins: {name: 'Frog-Men Assassins', shortname: 'Frog-Men', id: 'frogmen_assassins', type: 'Beastman, Aquatic', stat: 'S', size:250, nd:5, duration:96, health: [16000000000,24000000000,32000000000,64000000000,0,0], lt: ['cara','cara','cara','cara']}, felendis: {name: 'Felendis & Shaoquin', shortname: 'Banhammer', id: 'felendis', type: 'Ogre', stat: 'H', size:100, nd:4, duration:168, health: [441823718,549238221,707842125,888007007,0,0]}, gataalli_huxac: {name: 'Gataalli Huxac', shortname: 'Gataalli', id: 'gataalli_huxac', type: 'Giant', stat: 'S', size:800, nd:6, duration:128, health: [375000000000,750000000000,1125000000000,1500000000000], lt: ['gat','gat','gat','gat']}, ogre: {name: 'General Grune', shortname: 'Grune', id: 'ogre', type: 'Ogre', stat: 'S', size:100, nd:4, duration:172, health: [20000000,25000000,32000000,40000000,0,0]}, korxun: {name: 'General Korxun', shortname: 'Korxun', id: 'korxun', type: 'Beastman, Ogre', stat: 'S', size:50, nd:4, duration:60, health: [8000000000,12000000000,16000000000,20000000000,0,0], lt: ['z15lo','z15lo','z15lo','z15lo']}, ghostly_alchemist: {name: 'Ghostly Alchemist', shortname: 'Alchemist', id: 'ghostly_alchemist', type: 'Undead', stat: 'S', size:25, nd:4, duration:48, health: [5000000000,10000000000,15000000000,20000000000], lt: ['alch','alch','alch','alch']}, dreadbloom: {name: 'Giant Dreadbloom', shortname: 'Dreadbloom', id: 'dreadbloom', type: '', stat: 'H', size:101, nd:5, duration:192, health: [900000000,1125000000,1440000000,1800000000,0,0]}, gigantomachy: {name: 'Gigantomachy', shortname: 'Gigantomachy', id: 'gigantomachy', type: 'Giant', stat: 'S', size:100, nd:5, duration:72, health: [25000000000,50000000000,75000000000,100000000000], lt: ['gig','gig','gig','gig']}, batman: {name: 'Gravlok the Night-Hunter', shortname: 'Gravlok', id: 'batman', type: 'Beastman', stat: 'S', size:100, nd:4, duration:72, health: [50000000,62500000,80000000,100000000,0,0]}, evilgnome: {name: 'Groblar Deathcap', shortname: 'Groblar', id: 'evilgnome', type: '', stat: 'H', size:10, nd:2, duration:120, health: [6000000,7500000,9600000,12000000,0,0]}, grundus: {name: 'Grundus', shortname: 'Grundus', id: 'grundus', type: 'Dragon, Magical Creature',stat: 'H', size:101, nd:5, duration:72, health: [800000000,1600000000,4000000000,12000000000]}, guilbert: {name: 'Guilbert the Mad', shortname: 'Guilbert', id: 'guilbert', type: 'Underground, Human', stat: 'S', size:250, nd:5, duration:96, health: [550000000,687500000,880000000,1100000000,0,0]}, gulkinari: {name: 'Gulkinari', shortname: 'Gulkinari', id: 'gulkinari', type: 'Qwiladrian', stat: 'S', size:50, nd:4, duration:60, health: [7500000000,9375000000,12000000000,15000000000,0,0], lt: ['gulk','gulk','gulk','gulk']}, gunnar: {name: 'Gunnar the Berserk', shortname: 'Gunnar', id: 'gunnar', type: 'Bludheim, Human', stat: 'S', size:10, nd:2, duration:48, health: [12000000,15000000,19200000,24000000,0,0]}, war_boar: {name: 'Hammer', shortname: 'Hammer', id: 'war_boar', type: 'Beastman', stat: 'H', size:50, nd:3, duration:144, health: [220000000,275000000,352000000,440000000,0,0]}, hargamesh: {name: 'Hargamesh', shortname: 'Hargamesh', id: 'hargamesh', type: 'Beastman, Magical Creature',stat: 'S', size:10, nd:2, duration:48, health: [18000000,22500000,28800000,36000000,0,0]}, grimsly: {name: 'Headmaster Grimsly', shortname: 'Grimsly', id: 'grimsly', type: 'Magical Creature', stat: 'S', size:50, nd:3, duration:60, health: [72000000,90000000,115200000,144000000,0,0]}, hellemental: {name: 'Hellemental', shortname: 'Hellemental', id: 'hellemental', type: 'Demon', stat: 'S', size:500, nd:6, duration:128, health: [70000000000,140000000000,210000000000,280000000000,0,0], lt: ['hell','hell','hell','hell']}, hurkus: {name: 'Hurkus the Eviscerator', shortname: 'Hurkus', id: 'hurkus', type: 'Beastman', stat: 'S', size:50, nd:4, duration:60, health: [2812500000,4218750000,5625000000,11250000000,0,0], lt: ['hurk','hurk','hurk','hurk']}, hydra: {name: 'Hydra', shortname: 'Hydra', id: 'hydra', type: 'Ryndor', stat: 'S', size:100, nd:4, duration:72, health: [65000000,81250000,104000000,130000000,0,0]}, imryx: {name: 'Imryx the Incinerator', shortname: 'Imryx', id: 'imryx', type: 'Underground, Dragon',stat: 'S', size:800, nd:6, duration:128, health: [180000000000,360000000000,540000000000,720000000000,0,0], lt: ['imx','imx','imx','imx']}, ironclad: {name: 'Ironclad', shortname: 'Ironclad', id: 'ironclad', type: 'Undead', stat: 'S', size:10, nd:2, duration:48, health: [10000000,12500000,16000000,20000000,0,0]}, //0.5/0.625/0.8/1 pumpkin: {name: 'Jack', shortname: 'Jack', id: 'pumpkin', type: 'Human', stat: 'S', size: 250, nd:6, duration:48 , health: [1000000000,1500000000,2000000000,3000000000], lt: ['njack','hjack','ljack','nmjack']}, jacksrevenge1: {name: 'Jack\'s Revenge', shortname: 'Revenge', id: 'jacksrevenge1', type: 'Human', stat: 'S', size: 250, nd:6, duration:48 , health: [5000000000,7500000000,10000000000,15000000000], lt: ['njr','hjr','ljr','nmjr']}, kang: {name: 'Kang-Gsod', shortname: 'Kang', id: 'kang', type: 'Bludheim, Underground', stat: 'S', size:100, nd:4, duration:72, health: [95000000,118750000,152000000,190000000,0,0]}, '3dawg': {name: 'Kerberos', shortname: 'Kerberos', id: '3dawg', type: 'Demon, Underground, Ryndor', stat: 'S', size:50, nd:3, duration:72, health: [35000000,43750000,56000000,70000000,0,0]}, keron: {name: 'Keron the Sky-Shaker', shortname: 'Keron', id: 'keron', type: 'Dragon', stat: 'H', size:101, nd:6, duration:192, health: [15000000000,18750000000,24000000000,30000000000,0,0], lt: ['keron','keron','keron','keron']}, kessovtowers: {name: 'Kessov Towers', shortname: 'Towers', id: 'kessovtowers', type: 'Siege', stat: 'ESH', size:90000,nd:0, duration:120, health: ['Unlimited','Unlimited','Unlimited','Unlimited','Unlimited','Unlimited']}, kessovtower: {name: 'Treachery and the Tower', shortname: 'Treachery', id: 'kessovtower', type: 'Siege', stat: 'ESH', size:90000,nd:0, duration:24, health: ['Unlimited','Unlimited','Unlimited','Unlimited','Unlimited','Unlimited']}, kessovforts: {name: 'Kessov Forts', shortname: 'Forts', id: 'kessovforts', type: 'Siege', stat: 'ESH', size:90000,nd:0, duration:120, health: ['Unlimited','Unlimited','Unlimited','Unlimited','Unlimited','Unlimited']}, kessovcastle: {name: 'Kessov Castle', shortname: 'Castle', id: 'kessovcastle', type: 'Siege', stat: 'ESH', size:90000,nd:0, duration:144, health: ['Unlimited','Unlimited','Unlimited','Unlimited','Unlimited','Unlimited']}, kalaxia: {name: 'Kalaxia the Far-Seer', shortname: 'Kalaxia', id: 'kalaxia', type: 'Dragon, Bludheim', stat: 'S', size:500, nd:6, duration:96, health: [800000000,1000000000,1280000000,1600000000,0,0]}, krugnug: {name: 'Krugnug', shortname: 'Krugnug', id: 'krugnug', type: 'Beastman', stat: 'S', size:25, nd:4, duration:48, health: [1000000000,1500000000,2000000000,4000000000,0,0], lt: ['z10','z10','z10','z10']}, krxunara: {name: 'Kr\'xunara of the Bloody Waves',shortname: 'Kr\'xunara', id: 'krxunara', type: 'Aquatic, Demon', stat: 'S', size:500, nd:6, duration:128, health: [62500000000,125000000000,187500000000,250000000000], lt: ['krx','krx','krx','krx']}, krykagrius: {name: 'Krykagrius', shortname: 'Kryk', id: 'krykagrius', type: 'Dragon', stat: 'ESH', size:90000,nd:0, duration:72, health: ['Unlimited','Unlimited','Unlimited','Unlimited','Unlimited','Unlimited']}, legion_of_darkness: {name: 'Legions of Darkness', shortname: 'Darkness', id: 'legion_of_darkness', type: 'Human', stat: 'S', size:250, nd:5, duration:96, health: [20000000000,40000000000,60000000000,80000000000], lt: ['dark','dark','dark','dark']}, leonine_watcher: {name: 'Leonine', shortname: 'Leonine', id: 'leonine_watcher', type: 'Underground, Construct',stat: 'S', size:100, nd:5, duration:48, health: [4000000000,6000000000,8000000000,16000000000,0,0], lt: ['z10','z10','z10','z10']}, tyranthius: {name: 'Lord Tyranthius', shortname: 'Tyr', id: 'tyranthius', type: 'Demon, Ryndor', stat: 'S', size:500, nd:6, duration:168, health: [600000000,750000000,960000000,1200000000,0,0]}, lunacy: {name: 'Lunatics', shortname: 'Lunatics', id: 'lunacy', type: 'Demon, Human', stat: 'H', size:50, nd:3, duration:144, health: [180000000,225000000,288000000,360000000,0,0]}, lurker: {name: 'Lurking Horror', shortname: 'Lurking', id: 'lurker', type: 'Underground, Aquatic',stat: 'S', size:100, nd:4, duration:120, health: [35000000,43750000,56000000,70000000,0,0]}, malleus: {name: 'Malleus Vivorum', shortname: 'Malleus', id: 'malleus', type: 'Beastman, Undead', stat: 'S', size:100, nd:5, duration:72, health: [8000000000,12000000000,16000000000,20000000000,0,0], lt: ['mall','mall','mall','mall']}, maraak: {name: 'Maraak the Impaler', shortname: 'Maraak', id: 'maraak', type: 'Underground', stat: 'S', size:10, nd:2, duration:48, health: [15000000,18750000,24000000,30000000,0,0]}, mardachus: {name: 'Mardachus the Destroyer', shortname: 'Mardachus', id: 'mardachus', type: 'Dragon', stat: 'S', size:500, nd:6, duration:96, health: [1100000000,1375000000,1760000000,2200000000,0,0]}, scorp: {name: 'Mazalu', shortname: 'Mazalu', id: 'scorp', type: 'Beastman', stat: 'S', size:50, nd:3, duration:168, health: [5000000,6250000,8000000,10000000,0,0]}, mestr_rekkr_rematch:{name: 'Mestr Rekkr Rematch', shortname: 'Rekkr II', id: 'mestr_rekkr_rematch', type: 'Human', stat: 'S', size:25, nd:4, duration:48, health: [6000000000,9000000000,13200000000,18000000000,0,0], lt: ['rekkr','rekkr','rekkr','rekkr']}, mesyra: {name: 'Mesyra the Watcher', shortname: 'Mesyra', id: 'mesyra', type: 'Dragon', stat: 'S', size:250, nd:5, duration:96, health: [1000000000,1250000000,1600000000,2000000000,0,0]}, nalagarst: {name: 'Nalagarst', shortname: 'Nalagarst', id: 'nalagarst', type: 'Dragon, Undead', stat: 'S', size:500, nd:6, duration:98, health: [700000000,875000000,1120000000,1400000000,0,0]}, nereidon: {name: 'Nereidon the Sea Slayer', shortname: 'Nereidon', id: 'nereidon', type: 'Dragon, Beastman, Aquatic', stat: 'S', size:30, nd:3, duration:48, health: [6000000000,9000000000,12000000000,15000000000,0,0], lt: ['z15lo','z15lo','z15lo','z15lo']}, nidhogg: {name: 'Nidhogg', shortname: 'Nidhogg', id: 'nidhogg', type: 'Bludheim, Aquatic', stat: 'S', size:50, nd:3, duration:60, health: [52000000,65000000,83200000,104000000,0,0]}, nimrod: {name: 'Nimrod the Hunter', shortname: 'Nimrod', id: 'nimrod', type: 'Dragon', stat: 'S', size:250, nd:5, duration:96, health: [1200000000,1500000000,1920000000,2400000000,0,0]}, nylatrix: {name: 'Nylatrix', shortname: 'Nylatrix', id: 'nylatrix', type: 'Dragon', stat: 'H', size:101, nd:5, duration:192, health: [2000000000,2500000000,3400000000,4000000000,0,0], lt: ['nker','hker','lker','nmker']}, phaedra: {name: 'Phaedra the Deceiver', shortname: 'Phaedra', id: 'phaedra', type: 'Dragon', stat: 'S', size:250, nd:5, duration:96, health: [1400000000,1750000000,2240000000,2800000000,0,0]}, fairy_prince: {name: 'Prince Obyron', shortname: 'Obyron', id: 'fairy_prince', type: 'Magical Creature', stat: 'H', size:10, nd:2, duration:120, health: [30000000,37500000,48000000,60000000,0,0]}, roc: {name: 'Ragetalon', shortname: 'Ragetalon', id: 'roc', type: '', stat: 'H', size:100, nd:4, duration:168, health: [110000000,137500000,176000000,220000000,0,0]}, rannveig: {name: 'Rannveig', shortname: 'Rannveig', id: 'rannveig', type: 'Human', stat: 'E', size:250, nd:6, duration:128, health: [15000000000,30000000000,45000000000,60000000000,0,0], lt: ['rann','rann','rann','rann']}, rhalmarius_the_despoiler:{name: 'Rhalmarius the Despoiler', shortname: 'Rhalmarius', id: 'rhalmarius_the_despoiler', type: 'Dragon', stat: 'H', size:100, nd:6, duration:84, health: [500000000,1250000000,3125000000,7812500000,0,0]}, tomb_gargoyle: {name: 'Riddler Gargoyle', shortname: 'Riddler', id: 'tomb_gargoyle', type: 'Underground, Construct',stat: 'S', size:50, nd:4, duration:48, health: [2000000000,3000000000,4000000000,8000000000,0,0], lt: ['z10','z10','z10','z10']}, rift: {name: 'Rift the Mauler', shortname: 'Rift', id: 'rift', type: 'Magical Creature', stat: 'S', size:100, nd:4, duration:72, health: [125000000,156250000,200000000,250000000,0,0]}, ruzzik: {name: 'Ruzzik the Slayer', shortname: 'Ruzzik', id: 'ruzzik', type: 'Beastman', stat: 'S', size:500, nd:6, duration:128, health: [55000000000,82500000000,165000000000,220000000000,0,0], lt: ['ruzz','ruzz','ruzz','ruzz']}, salome: {name: 'Salome the Seductress', shortname: 'Salome', id: 'salome', type: 'Demon, Underground', stat: 'H', size:100, nd:4, duration:48, health: [666000000,832500000,1065600000,1332000000,0,0], lt: ['nSlut','hSlut','lSlut','nmSlut']}, crabshark: {name: 'Scuttlegore', shortname: 'Scuttlegore', id: 'crabshark', type: 'Colosseum, Aquatic', stat: 'H', size:100, nd:4, duration:168, health: [220000000,275000000,352000000,440000000,0,0]}, squid: {name: 'Scylla', shortname: 'Scylla', id: 'squid', type: 'Beastman, Aquatic', stat: 'S', size:50, nd:3, duration:72, health: [25000000,31250000,40000000,50000000,0,0]}, shaar: {name: 'Shaar the Reaver', shortname: 'Shaar', id: 'shaar', type: 'Beastman', stat: 'S', size:250, nd:6, duration:96, health: [12000000000,24000000000,36000000000,60000000000,0,0], lt: ['z15hi','z15hi','z15hi','z15hi']}, shadow: {name: 'Shadow', shortname: 'Shadow', id: 'shadow', type: 'Magical Creature', stat: 'S', size:50, nd:5, duration:60, health: [10000000000,17000000000,25000000000,35000000000,0,0], lt: ['shd','shd','shd','shd']}, sircai: {name: 'Sir Cai', shortname: 'Cai', id: 'sircai', type: 'Demon, Ryndor', stat: 'S', size:250, nd:5, duration:168, health: [350000000,437500000,560000000,700000000,0,0]}, sisters: {name: 'Sisters of the Song', shortname: 'Sisters', id: 'sisters', type: 'Magical Creature', stat: 'S', size:250, nd:5, duration:96, health: [600000000,750000000,960000000,1200000000,0,0]}, slaughterers: {name: 'Slaughterers Six', shortname: 'Slaughtereres', id: 'slaughterers', type: 'Human', stat: 'H', size:10, nd:2, duration:120, health: [24000000,30000000,38400000,48000000,0,0]}, stein: {name: 'Stein', shortname: 'Stein', id: 'stein', type: 'Undead, Underground, Construct',stat: 'S', size:100, nd:4, duration:72, health: [80000000,100000000,128000000,160000000,0,0]}, siculus: {name: 'Count Siculus\' Phantom', shortname: 'Siculus', id: 'siculus', type: 'Undead', stat: 'S', size:500, nd:6, duration:128, health: [850000000,1700000000,2975000000,4250000000,0,0], lt: ['sic','sic','sic','sic']}, tainted: {name: 'Tainted Erebus', shortname: 'Tainted', id: 'tainted', type: 'Dragon', stat: 'S', size:250, nd:5, duration:168, health: [250000000,312500000,400000000,500000000,0,0]}, tenebra: {name: 'Tenebra Shadow Mistress', shortname: 'Tenebra', id: 'tenebra', type: 'Dragon', stat: 'S', size:500, nd:6, duration:128, health: [2000000000,2500000000,3200000000,4000000000,0,0]}, thaltherda: {name: 'Thaltherda the Sea-Slitherer',shortname: 'Nessie', id: 'thaltherda', type: 'Aquatic, Dragon', stat: 'S', size:25, nd:4, duration:48, health: [3000000000,4500000000,6000000000,7500000000,0,0], lt: ['nessy','nessy','nessy','nessy']}, tisiphone: {name: 'Tisiphone the Vengeful', shortname: 'Tisi', id: 'tisiphone', type: 'Dragon, Colosseum', stat: 'E', size:50, nd:3, duration:12, health: [500000000,2500000000,5000000000,7500000000,0,0], lt: ['nTisi','hTisi','lTisi','nmTisi']}, teremarthu: {name: 'Teremarthu', shortname: 'Cthullu', id: 'teremarthu', type: 'Qwiladrian', stat: 'S', size:100, nd:5, duration:48, health: [6000000000,9000000000,12000000000,24000000000,0,0], lt: ['z10','z10','z10','z10']}, chimera: {name: 'Tetrarchos', shortname: 'Tetrarchos', id: 'chimera', type: 'Colosseum', stat: 'H', size:50, nd:3, duration:144, health: [90000000,112500000,144000000,180000000,0,0]}, gorgon: {name: 'Tithrasia', shortname: 'Tithrasia', id: 'gorgon', type: '', stat: 'H', size:10, nd:2, duration:120, health: [18000000,22500000,28800000,36000000,0,0]}, trekex: {name: 'Trekex\'s Amphibious Assault',shortname: 'Trekex', id: 'trekex', type: 'Aquatic, Beastman', stat: 'S', size:800, nd:6, duration:128, health: [250000000000,500000000000,750000000000,1000000000000], lt: ['trex','trex','trex','trex']}, tuxargus: {name: 'Tuxargus', shortname: 'Tuxargus', id: 'tuxargus', type: 'Dragon', stat: 'H', size:101, nd:5, duration:192, health: [2000000000,2500000000,3400000000,4000000000,0,0], lt: ['nker','hker','lker','nmker']}, ulfrik: {name: 'Ulfrik', shortname: 'Ulfrik', id: 'ulfrik', type: 'Bludheim, Siege, Human',stat: 'S', size:250, nd:5, duration:96, health: [500000000,625000000,800000000,1000000000,0,0]}, valanazes: {name: 'Valanazes the Gold', shortname: 'Valanazes', id: 'valanazes', type: 'Dragon', stat: 'S', size:500, nd:6, duration:128, health: [2400000000,3000000000,3840000000,4800000000,0,0]}, blobmonster: {name: 'Varlachleth', shortname: 'Varlachleth', id: 'blobmonster', type: 'Demon', stat: 'H', size:100, nd:4, duration:168, health: [330000000,412500000,528000000,660000000,0,0]}, verkiteia: {name: 'Verkiteia', shortname: 'Verkiteia', id: 'verkiteia', type: 'Dragon', stat: 'S', size:100, nd:5, duration:72, health: [11250000000,14062500000,18000000000,22500000000,0,0], lt: ['verk','verk','verk','verk']}, vortex_abomination: {name: 'Vortex Abomination', shortname: 'Vortex', id: 'vortex_abomination',type: 'Qwiladrian, Magical Creature', stat: 'S', size:500, nd:6, duration:128, health: [50000000000,75000000000,110000000000,205000000000,0,0], lt: ['vort','vort','vort','vort']}, zugen: {name: 'Warlord Zugen', shortname: 'Zugen', id: 'zugen', type: 'Ogre', stat: 'S', size:25, nd:4, duration:48, health: [4000000000,6000000000,8000000000,10000000000,0,0], lt: ['zugen','zugen','zugen','zugen']}, wexxa: {name: 'Wexxa the Worm-Tamer', shortname: 'Wexxa', id: 'wexxa', type: 'Underground', stat: 'S', size:100, nd:4, duration:72, health: [110000000,137500000,176000000,220000000,0,0]}, winter_kessov: {name: 'Blood Will Run Cold', shortname: 'Cold Blood', id: 'winter_kessov', type: 'Dragon, Siege', stat: 'ESH', size:90000,nd:0, duration:290, health: ['Unlimited','Unlimited','Unlimited','Unlimited','Unlimited','Unlimited']}, xessus: {name: 'Xessus of the Grim Wood', shortname: 'Xessus', id: 'xessus', type: '', stat: 'H', size:100, nd:4, duration:48, health: [500000000,625000000,800000000,1000000000,0,0], lt: ['nIns','hIns','lIns','nmIns']}, malchar: {name: 'Malchar the Tri-Eyed', shortname: 'Malchar', id: 'malchar', type: 'Demon', stat: 'H', size:100, nd:4, duration:48, health: [500000000,625000000,800000000,1000000000,0,0], lt: ['nIns','hIns','lIns','nmIns']}, krasgore: {name: 'Krasgore', shortname: 'Krasgore', id: 'krasgore', type: '', stat: 'H', size:100, nd:4, duration:48, health: [500000000,625000000,800000000,1000000000,0,0], lt: ['nIns','hIns','lIns','nmIns']}, nrlux: {name: 'N\'rlux the Devourer', shortname: 'N\'rlux', id: 'nrlux', type: 'Giant Insect', stat: 'H', size:100, nd:6, duration:48, health: [10000000000,12500000000,16000000000,20000000000,0,0], lt: ['lux','lux','lux','lux']}, xerkara: {name: 'Xerkara', shortname: 'Xerkara', id: 'xerkara', type: 'Dragon', stat: 'S', size:500, nd:6, duration:128, health: [65000000000,113750000000,143000000000,260000000000,0,0], lt: ['z15hi','z15hi','z15hi','z15hi']}, yydians_sanctuary: {name: 'Yydian\'s Sanctuary', shortname: 'Yydians', id: 'yydians_sanctuary', type: 'Siege, Construct', stat: 'S', size:250, nd:5, duration:96, health: [10000000000,20000000000,30000000000,50000000000,0,0], lt: ['yyd','yyd','yyd','yyd']}, zombiehorde: {name: 'Zombie Horde', shortname: 'Zombies', id: 'zombiehorde', type: 'Undead', stat: 'S', size:50, nd:3, duration:60, health: [45000000,56250000,72000000,90000000,0,0]}, zralkthalat: {name: 'Z\'ralk\'thalat', shortname: 'Zralk', id: 'zralkthalat', type: 'Demon', stat: 'S', size:100, nd:4, duration:72, health: [8750000000,13125000000,17500000000,35000000000,0,0], lt: ['z10','z10','z10','z10']} }, raidSizes: { 10: { name: 'Small', visible: 'Yes', ratios: [0.6,0.9,1.2,1.6,2.5,3.5], enames: ['1E6T','1E8T','2E','2/3E','3E','3/4E'], pruneTimers: [900,3600,7200]}, // 1h, 2h, 3h 13: { name: 'Small', visible: 'Yes', pruneTimers: [1800,3600,7200]}, // 1h, 2h, 2h 15: { name: 'Small', visible: 'Yes', ratios: [0.45,0.6,0.755,0.9,1.05,1.2,1.35,1.5,1.65,1.8,1.95], enames: ['65D','92D','119D','146D','173D','200D','227D','264D','301D','338D','375D'], pruneTimers: [1800,3600,3600]}, // Serpina only, so 5h/5h/5h 25: { name: 'Small', visible: 'Yes', ratios: [0.6,0.9,1.2,1.6,2.5,3.5], enames: ['1E6T','1E8T','2E','2/3E','3E','3/4E'], pruneTimers: [18000,18000,18000]}, 30: { name: 'Small', visible: 'Yes', ratios: [0.6,0.9,1.2,1.6,2.5,3.5], enames: ['1E6T','1E8T','2E','2/3E','3E','3/4E'], pruneTimers: [18000,18000,18000]}, 50: { name: 'Medium', visible: 'Yes', ratios: [0.7,0.95,2.05,3.125,6.75,8.5], enames: ['1E6T','1E8T','2E','2/3E','3E','3/4E'], pruneTimers: [3600,7200,10800]}, // 1h, 2h, 3h 100:{ name: 'Large', visible: 'Yes', ratios: [0.9,1.5,2.2,3.2,6.5,9.0], enames: ['1E6T','1E8T','2E','2/3E','3E','3/4E'], pruneTimers: [7200,43200,86400]}, // 4h, 12h, 36h 101:{ name: 'Epic', visible: 'Yes', ratios: [0.225,0.325,0.625,1.775,4.525,10.25], enames: ['1E6T','1E8T','2E','2/3E','3E','3/4E'], pruneTimers: [21600,86400,259200]}, // 24h, 48h, 72h 250:{ name: 'Epic', visible: 'Yes', ratios: [0.225,0.325,0.625,1.775,4.525,10.25], enames: ['1E6T','1E8T','2E','2/3E','3E','3/4E'], pruneTimers: [21600,86400,259200]}, // 24h, 48h, 72h 500:{ name: 'Colossal', visible: 'Yes', ratios: [0.45,0,0.65,1.25,2.5,9.0], enames: ['1E6T','1E8T','2E','2/3E','3E','3/4E'], pruneTimers: [43200,172800,259200]}, // 24h, 48h, 72h 800:{ name: 'Gigantic', visible: 'Yes', ratios: [0.45,0,0.65,1.25,2.5,9.0], enames: ['1E6T','1E8T','2E','2/3E','3E','3/4E'], pruneTimers: [43200,172800,259200]}, // 24h, 48h, 72h 90000:{ name: 'World', visible: 'Yes', ratios: [0,0,0,0,0,0], pruneTimers: [86400,86400,86400]} // 24h, 48h, 72h }, lootTiers: { u: { tiers: ['Not yet known'], epics: [0], best: 0}, imx: { tiers: ['100.0m','150.0m','200.0m','250.0m','300.0m','400.0m','500.0m','750.0m','1.000b','1.250b','1.500b','1.750b','2.000b','2.500b','3.000b','3.500b','4.000b','4.500b','5.000b','6.000b','7.000b','8.000b','9.000b','10.00b','12.50b','15.00b','17.50b','20.00b','25.00b'], epics: [16,21,26,32,38,44,51,69,86,118,142,166,191,239,286,330,355,381,408,435,462,489,516,544,592,640,688,736,815], best: 13, e: false}, shd: { tiers: ['50.00m','75.00m','100.0m','150.0m','200.0m','250.0m','300.0m','500.0m','750.0m','1.000b'], epics: [1,2,5,8,10,12,14,16,19,25], best: 6, e: false}, hell: { tiers: ['200.0m','250.0m','300.0m','500.0m','750.0m','1.000b','1.500b','2.000b','2.500b','3.000b','4.000b','5.000b','6.000b','8.000b','10.00b'], epics: [8,12,16,25,28,34,41,50,58,64,71,77,85,102,120], best: 2, e: false}, dark: { tiers: ['200.0m','300.0m','500.0m','750.0m','1.000b','1.500b','2.000b','2.500b','3.000b','4.000b','5.000b'], epics: [2,4,8,14,18,30,40,50,60,75,85], best: 7, e: false}, gat: { tiers: ['1.000b','1.500b','2.000b','2.500b','3.000b','4.000b','5.000b','6.000b','7.000b','8.000b','9.000b','10.00b','12.50b','15.00b','17.50b','20.00b','25.00b','30.00b','40.00b'], epics: [27,48,66,81,94,103,122,132,144,158,176,194,204,209,219,225,242,284,301], best:2, e: false}, trex: { tiers: ['100.0m','150.0m','200.0m','250.0m','300.0m','400.0m','500.0m','750.0m','1.000b','1.250b','1.500b','1.750b','2.000b','2.500b','3.000b','3.500b','4.000b','4.500b','5.000b','6.000b','7.000b','8.000b','9.000b','10.00b','12.50b','15.00b','17.50b','20.00b'], epics: [21,28,38,44,47,59,68,94,119,147,179,215,250,308,381,431,498,546,557,593,627,661,691,725,790,861,926,980], best: 14, e: false}, alch: { tiers: ['100.0m','150.0m','200.0m','250.0m','300.0m','400.0m','500.0m','650.0m','800.0m','1.000b','1.250b','1.500b'], epics: [4,6,8,9,11,13,15,17,19,20,25,32], best: 5, e: false}, rann: { tiers: ['100.0m','200.0m','300.0m','400.0m','500.0m','600.0m','700.0m','800.0m','900.0m','1.000b','2.000b','3.000b'], epics: [12,24,36,48,61,73,85,97,109,122,245,369], best: 9, e: false }, clock: { tiers: ['300.0m','400.0m','750.0m','1.000b','1.500b','2.000b','2.500b','3.000b','4.000b','5.000b','6.000b','8.000b','10.00b'], epics: [56,66,94,118,192,226,254,270,290,360,368,400,460], best: 0, e: false}, krx: { tiers: ['300.0m','400.0m','750.0m','1.000b','1.500b','2.000b','2.500b','3.000b','4.000b','5.000b','6.000b','8.000b'], epics: [56,66,94,118,192,226,254,270,290,360,368,400], best: 0, e: false}, gig: { tiers: ['200.0m','300.0m','400.0m','500.0m','750.0m','1.000b','1.500b','2.000b','2.500b','5.000b','8.000b'], epics: [36,48,63,76,94,111,146,199,256,400,490], best: 3, e: false}, rekkr: { tiers: ['250.0m','300.0m','400.0m','500.0m','720.0m','1.000b','1.500b','2.500b','3.500b'], epics: [10,11,15,18,23,26,34,37,51], best: 2, e: true}, rag: { tiers: ['225.0m','310.0m','400.0m','510.0m','750.0m','1.000b','1.500b','2.500b','5.000b'], epics: [11,13,17,19,23,27,37,39,61], best: 2, e: true}, z15lo: { tiers: ['225.0m','240.0m','300.0m','400.0m','750.0m','1.000b','1.500b','2.500b','5.000b'], epics: [8,9,14,16,19,23,33,36,48], best: 2, e: true}, z15hi: { tiers: ['225.0m','240.0m','300.0m','400.0m','750.0m','1.000b','1.500b','2.500b','5.000b','8.000b'], epics: [8,9,14,16,19,23,33,60,90,100], best: 2, e: true}, apoc: { tiers: ['12.00m','24.00m','36.00m','40.00m','60.00m','80.00m','100.0m','120.0m','140.0m','160.0m','180.0m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true }, cara: { tiers: ['400.0m','500.0m','600.0m','700.0m','800.0m','900.0m','1.000b','1.250b','1.500b','1.750b','2.000b','2.250b','2.500b','2.750b','3.000b'], epics: [10,11,12,13,14,15,16,20,24,28,32,36,40,44,48], best: 0, e: true }, zugen: { tiers: ['120.0m','180.0m','225.0m','240.0m','300.0m','400.0m','750.0m','1.000b','1.500b'], epics: [8,9,10,11,14,16,19,23,33], best: 4, e: true}, gulk: { tiers: ['90.00m','135.0m','150.0m','180.0m','225.0m','300.0m','550.0m','900.0m','1.500b'], epics: [2,5,7,9,11,15,18,22,34], best: 5, e: true }, verk: { tiers: ['100.0m','175.0m','250.0m','300.0m','375.0m','450.0m','525.0m','600.0m','900.0m','1.500b'], epics: [3,8,12,13,15,16,18,21,23,36], best: 2, e: true}, canib: { tiers: ['250.0m','300.0m','380.0m','480.0m','580.0m','660.0m','900.0m','1.500b','2.000b','2.800b','3.500b'], epics: [12,13,14,17,18,21,23,34,46,68,88], best: 0, e: true}, ruzz: { tiers: ['300.0m','400.0m','500.0m','600.0m','700.0m','800.0m','900.0m','1.000b','1.250b','1.500b','1.750b','2.000b','2.250b','2.500b','2.750b','3.000b'], epics: [2,5,11,12,13,14,15,16,20,24,28,32,36,40,44,48], best: 2, e: true }, z10: { tiers: ['100.0m','200.0m','300.0m','400.0m','500.0m','600.0m','700.0m','800.0m','900.0m','1.000b'], epics: [7,8,9,10,11,12,13,14,15,16], best: 0, e: true }, nmDl: { tiers: ['105.0m','135.0m','150.0m','225.0m','300.0m','375.0m','450.0m','525.0m','600.0m','675.0m'], epics: [2,4,6,8,10,12,14,16,18,20], best: 2, e: true }, lDl: { tiers: ['70.00m','90.00m','100.0m','150.0m','200.0m','250.0m','300.0m','350.0m','400.0m','450.0m'], epics: [2,4,6,8,10,12,14,16,18,20], best: 2, e: true }, hDl: { tiers: ['35.00m','45.00m','50.00m','75.00m','100.0m','125.0m','150.0m','175.0m','200.0m','225.0m'], epics: [2,4,6,8,10,12,14,16,18,20], best: 2, e: true }, nDl: { tiers: ['7.000m','9.000m','10.00m','15.00m','20.00m','25.00m','30.00m','35.00m','40.00m','45.00m'], epics: [2,4,6,8,10,12,14,16,18,20], best: 2, e: true }, nmTisi: { tiers: ['75.00m','105.0m','135.0m','150.0m','225.0m','300.0m','375.0m','450.0m','525.0m','600.0m','675.0m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true }, lTisi: { tiers: ['50.00m','70.00m','90.00m','100.0m','150.0m','200.0m','250.0m','300.0m','350.0m','400.0m','450.0m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true }, hTisi: { tiers: ['25.00m','35.00m','45.00m','50.00m','75.00m','100.0m','125.0m','150.0m','175.0m','200.0m','225.0m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true }, nTisi: { tiers: ['5.000m','7.000m','9.000m','10.00m','15.00m','20.00m','25.00m','30.00m','35.00m','40.00m','45.00m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true }, njack: { tiers: ['4.000m','20.00m','24.00m','48.00m','72.00m','96.00m','120.0m','144.0m','168.0m','192.0m'], epics: [2,3,4,6,7,8,9,10,11,12], best: 0, e: true}, hjack: { tiers: ['6.000m','30.00m','36.00m','72.00m','108.0m','144.0m','180.0m','216.0m','252.0m','288.0m'], epics: [2,3,4,6,7,8,9,10,11,12], best: 0, e: true}, ljack: { tiers: ['8.000m','40.00m','48.00m','96.00m','144.0m','192.0m','240.0m','288.0m','336.0m','384.0m'], epics: [2,3,4,6,7,8,9,10,11,12], best: 0, e: true}, nmjack: { tiers: ['12.00m','60.00m','72.00m','144.0m','216.0m','288.0m','360.0m','432.0m','504.0m','576.0m'], epics: [2,3,4,6,7,8,9,10,11,12], best: 0, e: true}, hjr: { tiers: ['30.00m','150.0m','180.0m','360.0m','750.0m','1.500b'], epics: [8,12,16,27,36,72], best: 0, e: true}, njr: { tiers: ['20.00m','100.0m','120.0m','240.0m','500.0m','1.000b'], epics: [8,12,16,27,36,72], best: 0, e: true}, ljr: { tiers: ['40.00m','200.0m','240.0m','480.0m','1.000b','2.000b'], epics: [8,12,16,27,36,72], best: 0, e: true}, nmjr: { tiers: ['60.00m','300.0m','360.0m','720.0m','1.500b','3.000b'], epics: [8,12,16,27,36,72], best: 0, e: true}, yyd: { tiers: ['125.0m','175.0m','250.0m','300.0m','375.0m','450.0m','525.0m','625.0m','900.0m','1.500b'], epics: [3,8,12,13,15,16,18,21,23,36], best: 2, e: true}, nessy: { tiers: ['120.0m','180.0m','225.0m','240.0m','300.0m','500.0m','750.0m','1.000b'], epics: [9,10,11,12,13,14,17,20], best: 1, e: true}, hurk: { tiers: ['90.00m','135.0m','150.0m','180.0m','225.0m','300.0m','550.0m','900.0m'], epics: [3,7,10,12,15,19,26,30], best: 2, e: true}, mall: { tiers: ['100.0m','150.0m','225.0m','300.0m','375.0m','450.0m','525.0m','600.0m','900.0m'], epics: [3,8,11,12,14,16,18,20,24], best: 1, e: true}, nIns: { tiers: ['5.000m','7.000m','9.000m','10.00m','15.00m','20.00m','25.00m','30.00m','35.00m','40.00m','45.00m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, hIns: { tiers: ['6.250m','8.750m','11.25m','12.50m','18.75m','25.00m','31.25m','37.50m','43.75m','50.00m','56.25m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, lIns: { tiers: ['8.000m','11.20m','14.40m','16.00m','24.00m','32.00m','40.00m','48.00m','56.00m','64.00m','72.00m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, nmIns: { tiers: ['10.00m','14.00m','18.00m','20.00m','30.00m','40.00m','50.00m','60.00m','70.00m','80.00m','90.00m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, nker: { tiers: ['20.00m','28.00m','36.00m','40.00m','60.00m','80.00m','100.0m','120.0m','140.0m','160.0m','180.0m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, hker: { tiers: ['25.00m','35.00m','45.00m','50.00m','75.00m','100.0m','125.0m','150.0m','175.0m','200.0m','225.0m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, lker: { tiers: ['32.00m','44.80m','57.60m','64.00m','96.00m','128.0m','160.0m','192.0m','224.0m','256.0m','288.0m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, nmker: { tiers: ['40.00m','56.00m','72.00m','80.00m','120.0m','160.0m','200.0m','240.0m','280.0m','320.0m','360.0m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, nSlut: { tiers: ['6.660m','9.324m','11.99m','13.32m','19.98m','26.64m','33.30m','39.96m','46.62m','53.28m','59.94m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, hSlut: { tiers: ['8.325m','11.66m','14.99m','16.65m','24.98m','33.30m','41.63m','49.95m','58.28m','66.60m','74.93m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, lSlut: { tiers: ['10.66m','14.92m','19.18m','21.31m','31.97m','42.62m','53.28m','63.94m','74.59m','85.25m','95.90m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, nmSlut: { tiers: ['13.32m','18.65m','23.98m','26.64m','39.96m','53.28m','66.60m','79.92m','93.24m','106.6m','119.9m'], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3 , e: true}, sic: { tiers: ['400.0m','500.0m','600.0m','700.0m','800.0m','900.0m','1.000b','2.000b'], epics: [10,11,12,13,14,15,16,32], best: 0, e: true}, vort: { tiers: ['200.0m','300.0m','400.0m','500.0m','600.0m','700.0m','800.0m','900.0m','1.000b','1.500b','2.000b','2.500b','3.000b','3.500b'], epics: [3,10,14,15,17,18,21,23,32,37,44,52,58,90], best: 1, e: true}, lux: { tiers: ['8.000m','17.00m','26.00m','35.00m','45.00m','56.00m','67.00m','78.00m','90.00m','103.0m','116.0m','129.0m','143.0m','157.0m','173.0m','188.0m','202.0m','220.0m','238.0m','255.0m','270.0m','293.0m','311.0m','330.0m','350.0m'], epics: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26], best: 9, e: true }, keron: { tiers: ['8.000m','17.00m','26.00m','35.00m','45.00m','56.00m','67.00m','78.00m','90.00m','103.0m','116.0m','129.0m','143.0m','157.0m','173.0m','188.0m','202.0m','220.0m','238.0m','255.0m','270.0m','293.0m','311.0m','330.0m','350.0m','1.000b'], epics: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,30], best: 9, e: true } }, linkNames: { 'prntscr.com':'LightShot', 'www.youtube.com':'YouTube', 'i.imgur.com':'imgur', 'imgur.com':'imgur', 'docs.google.com':'Google Docs', 'userscripts.org':'Script', 'www.dawnofthedragons.com':'DotD Forum', 'dotd.wikia.com':'DotD Wiki', 'www.fooby.de':'DotD Log Analyzer'}, raidArray: [], camps: { bob: {name: 'Bastion of Blood', time: [120,96], prefixes: 'Regenerating, Morphling, Vengeful, Chilling', numNodes: 6, nodes: ['bmp','gor','chi','zh','sic','bob'], mods: ['Speed Run: halved camp timer, +20% guild rep from EoC', 'Hailstorm: +1 prefix, +20% guild exp from EoC', 'Nerfed: -30% player damage, special loot from EoC'], tiers: [[5,31,0],[25,32,0],[75,33,0],[100,34,0],[200,35,7],[250,36,8],[320,37,9],[375,38,10],[480,39,11],[550,40,12],[640,41,13],[960,42,14],[1500,43,15],[2400,44,16],[2750,45,17],[3500,50,21],[4500,58,24],[5500,64,26]], bmp: {name: 'Black Moon Pack', sname: 'Bmp', type: 'Human, Campaign', size: 25, hp: [6000,18000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0]}, gor: {name: 'Gorgon', sname: 'Gor', type: 'Campaign', size: 50, hp: [12000,36000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0]}, chi: {name: 'Chimera', sname: 'Chi', type: 'Campaign', size: 75, hp: [28000,84000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0]}, zh: {name: 'Zombie Horde', sname: 'ZH', type: 'Campaign, Undead', size: 100, hp: [50000,150000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}, sic: {name: 'Byron Siculus', sname: 'Sic', type: 'Campaign', size: 100, hp: [50000,150000], gold: true, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1]}, bob: {name: 'Bastion of Blood', sname: 'BoB', type: 'Campaign, Undead, Siege', size: 100, hp: [50000,150000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1]}}, mam: {name: 'Monsters and Magma', time: [120,96], prefixes: 'Regenerating, Vengeful, Chilling, Curse', numNodes: 7, nodes: ['wlp','tos','gol','ele','gmh','wrm','imx'], mods: ['Speed Run: halved camp timer, +20% guild rep from EoC', 'Hailstorm: +1 prefix, +20% guild exp from EoC', 'Fatigued: -45% player damage, special loot and +3 slots from EoC', 'Endurance Run: Node timer set to 4h, Molten Troves in EoC'], tiers: [[5,31,0],[25,32,0],[75,33,0],[100,34,0],[200,35,7],[250,36,8],[320,37,9],[375,38,10],[480,39,11],[550,40,12],[640,41,13],[960,42,14],[1500,43,15],[2400,44,16],[2750,45,17],[3500,50,21],[4500,58,24],[5500,64,26],[7500,74,28]], wlp: {name: 'Imryx\'s Whelps', sname: 'Wlp', type: 'Dragon, Underground, Campaign', size: 25, hp: [7000,21000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0]}, tos: {name: 'Magma Tossers', sname: 'Tos', type: 'Underground, Construct, Campaign', size: 50, hp: [13000,39000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0]}, gol: {name: 'Magma Golem', sname: 'Gol', type: 'Underground, Construct, Campaign', size: 50, hp: [16000,48000], gold: true, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0]}, ele: {name: 'Magma Elemental', sname: 'Ele', type: 'Underground, Magical Creature, Campaign', size: 75, hp: [30000,90000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0]}, gmh: {name: 'Grt. Magma Horror', sname: 'Gmh', type: 'Campaign, Undead', size: 100, hp: [55000,165000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0]}, wrm: {name: 'Magma Worm', sname: 'Wrm', type: 'Underground, Campaign', size: 100, hp: [60000,180000], gold: true, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0]}, imx: {name: 'Imryx the Incinerator', sname: 'Imx', type: 'Dragon, Underground, Campaign', size: 100, hp: [65000,195000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1]}}, gd: {name: 'The Grey Death', time: [120,96], prefixes: 'Regenerating, Vengeful, Chilling, Curse', numNodes: 6, nodes: ['crk','zrn','nun','tms','crn','hrt'], mods: ['Speed Run: halved camp timer, +20% guild rep from EoC', 'Hailstorm: +1 prefix, +20% guild exp from EoC', 'Fatigued: -45% player damage, special loot and +3 slots from EoC'], tiers: [[25,31,0],[100,34,0],[200,36,6],[300,38,9],[500,40,14],[750,42,16],[1000,45,18],[2500,48,21],[4100,50,25],[6500,58,29],[8500,62,31],[6500,54,27],[8500,63,32],[10000,64,33],[15000,66,35],[20000,68,37],[30000,70,39],[40000,73,41]], crk: {name: 'Carshk the Marauder', sname: 'Crk', type: 'Campaign', size: 25, hp: [8000,25600], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0]}, zrn: {name: 'Zranras', sname: 'Zrn', type: 'Campaign, Beastman', size: 50, hp: [15000,48000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}, nun: {name: 'General Nund', sname: 'Nun', type: 'Campaign, Ogre', size: 50, hp: [20000,50000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1]}, tms: {name: 'Thurmavus the Ripper', sname: 'Tms', type: 'Campaign, Dragon', size: 100, hp: [75000,202500], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1]}, crn: {name: 'Craenaestra the Stalker', sname: 'Crn', type: 'Campaign, Dragon', size: 100, hp: [80000,224000], gold: true, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1]}, hrt: {name: 'Horthania the Grey', sname: 'Hrt', type: 'Campaign, Dragon', size: 100, hp: [90000,270000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1]}}, goc: {name: 'Giants of Chalua', time: [120,96], prefixes: 'Regenerating, Vengeful, Chilling, Curse', numNodes: 6, nodes: ['mwm','bl','gh','fgs','gc','ha'], mods: ['Speed Run: halved camp timer, +20% guild rep from EoC', 'Hailstorm: +1 prefix, +20% guild exp from EoC', 'Fatigued: -45% player damage, Boss loot from EoC', 'Endurance Run: Node timer set to 4h, 10 guild tokens in EoC'], tiers: [[5,31,0,0],[25,32,0,0],[150,34,0,0],[250,35,7,0],[480,39,11,0],[640,41,13,0],[960,42,14,1],[1500,43,15,1],[2500,45,17,3],[3750,48,19,4],[4500,50,21,5],[5000,52,24,6],[6500,54,26,6],[7500,56,28,7],[10000,60,30,8],[15000,64,34,9]], mwm: {name: 'Monkey Warrior Minions', sname: 'MWM', type: 'Human, Campaign', size: 25, hp: [15000,45000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0]}, bl: {name: 'Basileus Lizard', sname: 'BL', type: 'Campaign', size: 50, hp: [25000,75000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0]}, gh: {name: 'Giant Hunter', sname: 'GH', type: 'Giant, Campaign', size: 75, hp: [55000,165000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0]}, fgs: {name: 'Fire Giant Shaman', sname: 'FGS', type: 'Giant, Campaign', size: 100, hp: [100000,250000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0]}, gc: {name: 'Giant Cook', sname: 'GC', type: 'Giant, Campaign', size: 100, hp: [125000,312500], gold: true, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0]}, ha: {name: 'Hitullpa Aatqui', sname: 'HA', type: 'Giant, Campaign', size: 100, hp: [150000,375000], gold: false, tiers: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}} }, slapSentences: [ 'slaps in the face with a rotten old fish', 'slaps around with a glove', 'slaps around with an armoured glove', 'hacks into \'s computer and slaps up side the head with a rubber chicken', 'slaps around a bit with a wet noddle', 'slaps about the head and shoulders with a rubber chicken', 'slaps \'s face so hard, has to walk backwards from now on', 'slaps some sense into with a red brick', 'slaps with a herring', 'slaps with a fire hose', 'slaps with a huge law suit', 'slaps with a great big, wet, 100% rubber duck', 'slaps with a large dildo' ], reload: function() { SRDotDX.echo('Reloading, please wait...'); activateGame(); //SRDotDX.gui.cHTML('#gameiframe').ele().src = 'http://web1.dawnofthedragons.com/kong?' + SRDotDX.request.kongData; }, fails: 0, load: function() { if (typeof holodeck == 'object' && typeof ChatDialogue == 'function' && typeof holodeck._tabs == 'object' && typeof holodeck.activeDialogue == 'function' && typeof activateGame == 'function' && typeof document.getElementById('kong_game_ui') != 'null' && typeof SRDotDX.raids == 'object' ) { ChatDialogue.prototype.sendInput = function () { var b = this._input_node.value.replace(/kv_&/ig,"&kv_"); var a = b.match(/[\s\S]{1,240}(\s|$)/g); var al = a.length-1, i; if(al < 1 || this._input_node.value.charAt(0) == '/') this._holodeck.processChatCommand(a[0]) && this._holodeck.filterOutgoingMessage(a[0], this._onInputFunction); else for(i=0; i<=al; i++ ) this._holodeck.filterOutgoingMessage((i==0?'':'... ')+a[i]+(i==al?'':'...'), this._onInputFunction); this._input_node.value = ""; }; ChatDialogue.prototype.SRDotDX_echo = function(msg){ var num = SRDotDX.gui.getChatNumber(); var pEle = document.getElementsByClassName('chat_message_window')[num].getElementsByTagName('p'); var lp = pEle.length-1; if (lp >= 0 && pEle[lp].className == 'script') { msg = pEle[lp].getElementsByTagName('span')[5].innerHTML + '
' + msg; pEle[lp].getElementsByTagName('span')[5].innerHTML = msg; setTimeout(SRDotDX.gui.scrollChat,100,num); } else this.displayUnsanitizedMessage('DotDeXtension', '
' + msg, {class: 'script'}, {non_user: true}); }; ChatDialogue.prototype.SRDotDX_emote = function(msg){ var user = holodeck._active_user.chatUsername(); this.displayUnsanitizedMessage(user, '**' + user + ' ' + msg + '**', {class: 'emote'}, {}); }; ChatDialogue.MESSAGE_TEMPLATE=new Template('

#{timestamp}#{room}#{prefix}#{username}: #{message}

'); Holodeck.prototype.addDotdChatCommand = function (a,b) { a = a.split(','); for(var i=0; i< a.length; i++) {this._chat_commands[a[i]]||(this._chat_commands[a[i]]=[]);this._chat_commands[a[i]].push(b)} }; ChatDialogue.prototype.displayUnsanitizedMessage = function(usr, msg, cls, pfx) { cls || (cls = {}); pfx || (pfx = {}); var active_room, allow_mutes = (active_room = this._holodeck.chatWindow().activeRoom()) && !active_room.canUserModerate(active_room.self()) || pfx.whisper; if (!allow_mutes || !this._user_manager.isMuted(usr)) { var normalMsg = true; //var e = !pfx.non_user ? "chat_message_window_username" : "chat_message_window_undecorated_username", var f = usr == this._user_manager.username(), h = [], rm = ''; var curTs = new Date().getTime().toString(); if (msg.charAt(0)=='[' && (msg.charAt(2)=='|' || msg.charAt(3)=='|')) { var sp = msg.split(']'); rm = sp[0].split('|')[0]+'] '; usr = sp[0].split('|')[1]; msg = sp[1]; h.push('bot') } var e = [usr]; pfx = pfx['private'] ? 'To ' : ''; if (cls['class'] != 'script') this._messages_count % 2 && h.push("even"), this._messages_count++; cls['class'] && h.push(cls['class']); if ((!cls['class'] || cls['class'].indexOf('emote') == -1) && msg.charAt(0) == '*' && msg.charAt(2) != '*') { var msgLen = msg.length; if (msgLen > 5) { msg = '**' + usr + ' ' + (msg.charAt(msgLen-1) == '*' ? msg.slice(1,msgLen-1) : msg.slice(1,msgLen)) + '**'; h.push('emote'); } } var rUsr = h.join(' ').indexOf('sent_whisper') > -1 ? this._user_manager.username() : usr; var raid = SRDotDX.getRaidLink(msg,rUsr); if (raid) { //normalMsg = false; h.push('SRDotDX_raid'); h.push('DotDX_sid_' + raid.sid); h.push('DotDX_diff_' + raid.diff); h.push('DotDX_raidId_'+raid.id); if(raid.visited) h.push('DotDX_visitedRaid'); if(raid.nuked) h.push('DotDX_nukedRaid'); h.push('DotDX_fltChat_' + raid.boss + '_' + (raid.diff - 1)); msg = raid.ptext + ''+raid.linkText()+'' + raid.ntext; SRDotDX.gui.toggleRaid('visited',raid.id,raid.visited); SRDotDX.gui.joining ? SRDotDX.gui.pushRaidToJoinQueue(raid.id) : SRDotDX.gui.selectRaidsToJoin('chat'); } else { var linkArr = msg.match(/(^.*?)(https?:\/\/([\w\d\._]+)[\/]?.*?(\s|$))(.*$)/i); if(linkArr != null && linkArr[0].indexOf('"cmd"') < 0 && linkArr[0].indexOf('href=') < 0 && linkArr.length == 6) msg = linkArr[1] + '[' + (SRDotDX.linkNames[linkArr[3]]?(SRDotDX.linkNames[linkArr[3]]+' link'):linkArr[3]) + ']' + linkArr[4] + linkArr[5]; //this._messages_count % 2 && h.push("even"); } if(SRDotDX.config.mutedUsers[usr]) h.push('DotDX_nukedRaid'); if(SRDotDX.config.ignUsers[usr]) usr = SRDotDX.config.ignUsers[usr], e.push('ign'); var fCls = h.join(' '); var ts = fCls.indexOf('emote') > -1 || fCls.indexOf('script') > -1 || fCls.indexOf('bot') > -1 ? '' : ('('+('0'+(new Date().getHours())).slice(-2) + ':' + ('0'+(new Date().getMinutes())).slice(-2)+') '); f && e.push('is_self'); usr = ChatDialogue.MESSAGE_TEMPLATE.evaluate({prefix: pfx, username: usr, message: msg, classNames: fCls, userClassNames: e.join(' '), timestamp: ts, room: rm, magId: curTs }); this.insert(usr); } }; ChatRoomGroup.prototype.buildRegularRoomNode = function(a){ var b = new Element("li", {"class": 0 === i % 2 ? "even room" : "odd room"}); b.room = a; var c = (new Element("p",{"class": "name"})).update(a.name); a.premium_only && (active_user.isPremium() || c.addClassName("upsell"), c.addClassName("premium_room_icon spritesite")); b.insert(c); b.insert((new Element("p", {"class": "user_count"+(a.joinable?"":" full")})).update(a.total_user_count)); b.insert(new Element("div", {style: "clear:both;"})); return b }; SRDotDX.util.updateUser = function(loading) { if(loading || SRDotDX.config.kongUser == 'Guest') { SRDotDX.config.kongUser = active_user.username(); SRDotDX.config.kongId = active_user.id(); SRDotDX.config.kongAuth = active_user.gameAuthToken(); } }; SRDotDX.echo = function(msg) { holodeck.activeDialogue().SRDotDX_echo(msg) }; SRDotDX.util.getRoomNumber = function() { return parseInt(holodeck._chat_window._active_room.name().match(/[0-9]{1,2}/)) }; for (var i in SRDotDX.raids) SRDotDX.raidArray.push(i); holodeck.addDotdChatCommand("stop",function(deck,text){ if(SRDotDX.gui.isPosting) { SRDotDX.gui.FPXStopPosting(); }else{SRDotDX.echo('/stop: Links are not being posted. Stop command invalid.');} return false; }); holodeck.addDotdChatCommand("e",function (deck, text){ var s = text.slice(2); if(s != "") holodeck.activeDialogue().SRDotDX_emote(s); else SRDotDX.echo('/e: Empty message specified'); return false; }); // holodeck.addDotdChatCommand("kill",function (deck, text){ document.getElementById("gameiframe").src = ""; SRDotDX.echo('Game window killed, have a nice chatting.'); return false; }); holodeck.addDotdChatCommand("update", function(deck,text) { var d = ""+SRDotDX.version.minor+"
"; d += 'Installed Version: '+SRDotDX.version.major+'
'; d += 'You can check '; d += 'here (greasyfork)'; d += ' to see if your version is most current and update if needed.'; SRDotDX.echo(d); return false; }); holodeck.addDotdChatCommand("help", function(deck,text) { var d = "Available chat commands:
"; d += "/stop /e /kill /update /reload /relaod /rl /reloaf /mute /unmute /mutelist /ign /unign /ignlist /friend /unfriend /script /clear /wikil /import /imp /fs /room /ijoin /join /wiki /guide /manual /slap /sh /camp /perc /citadel /raid /help"; d += '

You can click here to navigate to script guide for detailed instructions or use /guide and /manual commands.'; SRDotDX.echo(d); return false; }); holodeck.addDotdChatCommand("reload,relaod,rl,reloaf",function(deck,text){ SRDotDX.reload(); return false; }); holodeck.addDotdChatCommand("mute",function (deck, text){ var s = String(text).split(" "); if(s.length == 2 && s[1] != ""){ SRDotDX.config.mutedUsers[s[1]]=true; SRDotDX.echo('User "' + s[1] + '" muted. Use the /unmute command to undo, and the /mutelist to see all muted users.'); SRDotDX.config.save(false); }else { SRDotDX.echo('/mute: Invalid parameters specified. The proper syntax is "/mute [username]". '); } return false; }); holodeck.addDotdChatCommand("ign",function (deck, text){ var s = text.split(" "); if(s.length == 3 && s[1] != "" && s[2] != "") { SRDotDX.config.ignUsers[s[1]]=s[2]; SRDotDX.echo(s[1] + '\'s ign "' + s[2] + '" added. Use the /unign command to undo, and the /ignlist to see all users with known ign.'); SRDotDX.config.save(false); } else SRDotDX.echo('/ign: Invalid parameters specified. The proper syntax is "/ign [kong username] [in game name]".'); return false; }); holodeck.addDotdChatCommand('unmute',function (deck, text) { var s = String(text).split(' '); if(s.length == 2 && s[1] != '') { if(s[1] == 'all') { for (var u in SRDotDX.config.mutedUsers) delete SRDotDX.config.mutedUsers[u]; SRDotDX.config.save(false); SRDotDX.echo('All users unmuted.'); } else if (SRDotDX.config.mutedUsers[s[1]]) { delete SRDotDX.config.mutedUsers[s[1]]; SRDotDX.echo('User "' + s[1] + '" unmuted.'); SRDotDX.config.save(false); } else SRDotDX.echo('No muted user "' + s[1] + '" found.'); } else SRDotDX.echo('/unmute: Invalid parameters specified. The proper syntax is "/unmute [username]". "/unmute all" can be used to unmute all muted users.'); return false; }); holodeck.addDotdChatCommand('unign',function (deck, text) { var s = String(text).split(' '); if(s.length == 2 && s[1] != '') { if(s[1] == 'all') { for (var u in SRDotDX.config.ignUsers) delete SRDotDX.config.ignUsers[u]; SRDotDX.config.save(false); SRDotDX.echo('All users removed from IGN list.'); } else if (SRDotDX.config.ignUsers[s[1]]) { delete SRDotDX.config.ignUsers[s[1]]; SRDotDX.echo('Removed ' + s[1] + '\'s IGN.'); SRDotDX.config.save(false); } else SRDotDX.echo('No IGN of user "' + s[1] + '" found.'); } else SRDotDX.echo('/unign: Invalid parameters specified. The proper syntax is "/unign [username]". "/unign all" can be used to clear IGN list.'); return false; }); holodeck.addDotdChatCommand('mutelist', function (deck, text) { var s = 'List of users currently muted:
'; var i = 0; for(var u in SRDotDX.config.mutedUsers) { s += u + '
'; i++ } if (i == 0) s = 'No users currently muted.
'; s += '
Use the /mute and /unmute commands to add or remove users on this list.'; SRDotDX.echo(s); return false; }); holodeck.addDotdChatCommand('ignlist', function (deck, text) { var s = 'List of known users IGN:
'; if (SRDotDX.config.ignUsers.length == 0) s = 'No users added to IGN list.
'; else for (var u in SRDotDX.config.ignUsers) s += u + ':' + SRDotDX.config.ignUsers[u] + '
'; s += '
Use the /ign and /unign commands to add or remove users on this list.'; SRDotDX.echo(s); return false; }); holodeck.addDotdChatCommand('script', function(deck,text) { SRDotDX.gui.FPXdoWork('Script link: https://greasyfork.org/scripts/406-mutik-s-dotd-script'); return false; }); holodeck.addDotdChatCommand('clear',function(deck,text) { holodeck.activeDialogue().clear(); return false }); holodeck.addDotdChatCommand('wikil', function(deck,text) { SRDotDX.gui.FPXdoWork('http://dotd.wikia.com/wiki/Dawn_of_the_Dragons_Wiki'); return false; }); holodeck.addDotdChatCommand('import,imp', function(deck,text) { if (/^(\/imp+)/i.test(text)) { SRDotDX.echo('Importing all raids from server'); SRDotDX.request.raids(); } else SRDotDX.echo('FAIL! ;)'); return false; }); holodeck.addDotdChatCommand('friend', function(deck,text) { var s = String(text).split(" "); if(s.length == 2 && s[1] != ""){ if (typeof SRDotDX.config.friendUsers[s[1]] != 'object') { SRDotDX.config.friendUsers[s[1]] = [false,false,false,false,true]; SRDotDX.config.save(false); SRDotDX.gui.refreshFriends(); SRDotDX.echo('Added ' + s[1] + ' to friends'); } } return false; }); holodeck.addDotdChatCommand('unfriend', function(deck,text) { var s = String(text).split(" "); if(s[1] == 'all') { for (var u in SRDotDX.config.friendUsers) delete SRDotDX.config.friendUsers[u]; SRDotDX.config.save(false); SRDotDX.gui.refreshFriends(); SRDotDX.echo('All users removed from friend list.'); } else if (SRDotDX.config.friendUsers[s[1]]) { delete SRDotDX.config.friendUsers[s[1]]; SRDotDX.config.save(false); SRDotDX.gui.refreshFriends(); SRDotDX.echo('Removed ' + s[1] + ' from friends'); } else SRDotDX.echo('User "' + s[1] + '" not found on friend list.'); return false; }); holodeck.addDotdChatCommand('fs', function(deck,text) { var cmd = text.split(' '); if (cmd[0] == '/fs' && cmd[1]) { SRDotDX.echo('Posting raid to friends'); document.getElementById('DotDX_raidsToSpam').value = cmd[1]; SRDotDX.gui.spamRaidsToFriends(); } else SRDotDX.echo('Wrong syntax. Usage: /fs '); return false; }); holodeck.addDotdChatCommand('room', function(deck,text) { var cmd = text.split(' '); if (cmd[0] == '/room' && cmd[1]) { SRDotDX.gui.gotoRoom(cmd[1]); } else SRDotDX.gui.gotoRoom(0); return false; }); holodeck.addDotdChatCommand('ijoin,join', function(deck,text) { var mode = text.charAt(1) == 'j', joinStr = ''; if (mode) joinStr = text.slice(6), SRDotDX.gui.quickImportAndJoin(joinStr); else joinStr = text.slice(7), SRDotDX.gui.quickImportAndJoin(joinStr,true); return false; }); holodeck.addDotdChatCommand('wiki', function(deck,text) { var p = /^\/wiki (.*?)$/i.exec(text); if (p) { window.open('http://dotd.wikia.com/wiki/Special:Search?search=' + p[1]); SRDotDX.echo('Wiki search opened.'); } else SRDotDX.echo('/wiki: Invalid parameters specified'); return false; }); holodeck.addDotdChatCommand('guide,manual', function(deck,text) { window.open('https://docs.google.com/document/d/14X0WhnJrISQbxdfQv_scJbG1sUyXdE2g4iMfHmLM0E0/edit'); SRDotDX.echo('Script guide opened in new tab/window.'); return false; }); holodeck.addDotdChatCommand('slap', function(deck,text) { var p = /^\/slap (.*?)$/i.exec(text); if (p) { var num = Math.round((Math.random()*(SRDotDX.slapSentences.length-1))); SRDotDX.gui.FPXdoWork('*' + SRDotDX.slapSentences[num].replace(//g,p[1]) + '*'); } else SRDotDX.echo('/slap: Invalid parameters specified'); return false; }); holodeck.addDotdChatCommand('sh', function(deck,text) { var p = /^\/sh (.*?)$/i.exec(text); if (p) { var fnd1 = p[1].toLowerCase(), fnd2 = p[1].length, found = false, sho; for (i in SRDotDX.shortcuts) { if (SRDotDX.shortcuts.hasOwnProperty(i)) { sho = SRDotDX.shortcuts[i]; if (sho.n.toLowerCase().indexOf(fnd1) > -1 && sho.n.length == fnd2) { SRDotDX.echo('' + sho.bn + ': ' + sho.desc); found = true; } } } if (!found) SRDotDX.echo('/sh: Shortcut not found in db'); } else SRDotDX.echo('/sh: No parameters specified'); return false; }); holodeck.addDotdChatCommand('perc', function(deck,text) { var bok = text.indexOf('bok',4); var cwp = text.indexOf('cwp',4); var empty = text.length < 6; var output = ""; if (bok >= 0 || empty) output = "Book of Knowledge Perc. Tiers:
\ 1 – 3999: Brown/Grey
\ 4000 – 5999: Brown/Grey/Green
\ 6000 – 9999: Grey/Green
\ 10000 – 13999: Grey/Green/Blue
\ 14000 – 15999: Green/Blue
\ 16000 – 17999: Green/Blue/Purple
\ 18000 – 21999: Blue/Purple
\ 22000 – 23999: Blue/Purple/Orange
\ 24000 – 29999: Purple/Orange
\ 30000 - 32999: Orange
\ 33000 - 35999: Orange/Red (more orange)
\ 36000 - 49999: Orange/Red (more red)
\ 50000 - 69999: Orange/Red (even more red)
\ 70000+ : Red"; if (empty) output += "
\ -------------------------------------------------
"; if (cwp >= 0 || empty) output += "Clockwork Parts Perc. Tiers:
\ 1-1999: 10x Perf. Clockwork Part
\ 2000-3999: 25x Perf. Clockwork Part
\ 4000-5999: 40x Perf. Clockwork Part
\ 6000-7999: 55x Perf. Clockwork Part
\ 8000-9999: 70x Perf. Clockwork Part
\ 10000-11999: 85x Perf. Clockwork Part
\ 12000-13999: 100x Perf. Clockwork Part
\ 14000-15999: 115x Perf. Clockwork Part
\ 16000-17999: 130x Perf. Clockwork Part
\ 18000-19999: 145x Perf. Clockwork Part
\ 20000-21999: 160x Perf. Clockwork Part
\ 22000-23999: 175x Perf. Clockwork Part
\ 24000-25999: 190x Perf. Clockwork Part
\ 26000-27999: 205x Perf. Clockwork Part
\ 28000-29999: 220x Perf. Clockwork Part
\ 30000-31999: 235x Perf. Clockwork Part
\ 32000-33999: ???x Perf. Clockwork Part
\ 34000-35999: ???x Perf. Clockwork Part
\ 36000+ : 260x Perf. Clockwork Part"; SRDotDX.echo(output); return false; }); holodeck.addDotdChatCommand('citadel', function(deck,text) { SRDotDX.echo("Barrack Book = Grune N Quest
\ Barrack Scroll 1 = Hydra NM Raid
\ Barrack Scroll 2 = Research Library book
\ Barrack Scroll 3 = Rhalmarius the Despoiler NM Raid/Crafting
\ Barrack Scroll 4 = The New Claw (World Raid) craft
\ Barrack Scroll 5 = Burbata the Spine-Crusher NM Raid
\ Barrack Scroll 6 = Temp loot from Hargamesh/Grimsly NM Raids
\ Barrack Scroll 7 = The Baroness NM Quest
\ Barrack Scroll 8 = Crafting from Imryx the Incinerator NM Raid
\ Armorsmith Book = Lurking Horror N Quest
\ Armorsmith Scroll 1 = Nalagarst NM Raid
\ Armorsmith Scroll 2 = Research Library 1
\ Armorsmith Scroll 3 = Dragon's Lair NM Raid
\ Armorsmith Scroll 4 = Temp loot from Rift/Sisters NM Raid
\ Armorsmith Scroll 5 = Baroness NM Raid
\ Weaponsmith Book = Erebus N Quest
\ Weaponsmith Scroll 1 = Baroness NM Raid
\ Weaponsmith Scroll 2 = Research Library 1
\ Weaponsmith Scroll 3 = Dragon's Lair NM Raid
\ Weaponsmith Scroll 4 = Temp loot from Mardachus NM Raid
\ Weaponsmith Scroll 5 = Warlord Zugen NM Raid
\ Alchemist Book = Nalagarst N Quest
\ Alchemist Scroll 1 = Kalaxia N Quest
\ Alchemist Scroll 2 = Research Library 5
\ Alchemist Scroll 3 = The New Claw (World Raid)
\ Alchemist Scroll 4 = Teremarthu NM Raid
\ Research Book = Bellarius N Quest
\ Research Library Scroll 1 = Mardachus NM Raid
\ Research Library Scroll 2 = Valanazes NM Raid
\ Research Library Scroll 3 = Teremarthu NM Raid
\ Research Library Scroll 4 = Z'ralk'thalat NM Raid
\ Research Library Scroll 5 = Simulacrum of Dahrizon NM Quest
\ Research Library Scroll 6 = Count Siculus' Phantom N Quest
\ Pet Emporium Book = Count Siculus' Phantom N Quest
\ Pet Emporium Scroll 1 = Research Library 4
\ Pet Emporium Scroll 2 = Cannibal Barbarians NM Raid
\ Stables Book = Valanazes N Quest
\ Stables Scroll 1 = Frog-men Assassins NM Raid
\ Stables Scroll 2 = Research Library 2
\ Stables Scroll 3 = Mount Chest
\ Training Ground Book = Teremarthu N Quest
\ Training Ground Scroll 1 = Research Library 3
\ Training Ground Scroll 2 = Temporary loot from Z7 NM Raids
\ Training Ground Scroll 3 = Invasion Rank: Wyrm-Commander
\ Training Ground Scroll 4 = Invasion Rank: Chief Battlefield Overseer
\ Training Ground Scroll 5 = Count Siculus' Phantom L&NM Raid
\ Training Ground Scroll 6 = Thaltherda the Sea-Slitherer NM Raid
\ Wizard's Tower Book = Ruzzik the Slayer N Quest
\ Wizard's Tower Scroll 1 = Salome the Seductress NM Raid
\ Wizard's Tower Scroll 2 = Kalaxia the Far-Seer NM Raid
\ Wizard's Tower Scroll 3 = Yydian's Sanctuary NM Raid
\ Wizard's Tower Scroll 4 = Drulcharus NM Raid
\ Jeweler Book = Krugnug N Quest
\ Jeweler Scroll 1 = Thaltherda the Sea-Slitherer NM Raid
\ Jeweler Scroll 2 = Crafting (General/Events)
\ Jeweler Scroll 3 = Spectral Erebus Raid/Crafting"); return false; }); holodeck.addDotdChatCommand('camp', function(deck,text) { var p = text.split(' '), msg = ''; if (p[1] && SRDotDX.camps.hasOwnProperty(p[1].toLowerCase())) { var camp = SRDotDX.camps[p[1].toLowerCase()]; var num = camp.tiers[0].length; msg += '' + camp.name + ''; msg += '
Camp time: N ' + camp.time[0] + 'h, H '+ camp.time[1] +'h
Prefixes: ' + camp.prefixes; msg += '
'+(num>3?'':''); for(var i=0; i'; } msg += ''; if(num>3) { for (i = 0; i'; for (var j=0; j✓':''; } } else { for (i = 0; i'; for (var j=0; j✓':''; } } msg += '
DmgCURERE
'+camp.tiers[i][1]+''+camp.tiers[i][2]+''+camp.tiers[i][3]+''+camp.tiers[i][1]+''+camp.tiers[i][2]+'
'; var node; for(i=0; i':'') + node.sname + ' — ' + node.name + ', FS: N ' + SRDotDX.util.getShortNumMil(node.hp[0]/node.size) + ' / H ' + SRDotDX.util.getShortNumMil(node.hp[1]/node.size) ; } SRDotDX.echo('*loading....*'); setTimeout( function(){ var chats = document.getElementsByClassName('chat_message_window'); for (i=1; i 0) { var ele = elem[elem.length-1]; ele.innerHTML = ele.innerHTML.slice(0,-13) + msg; chats[i].scrollTop = chats[i].scrollHeight; break; } } }, 100); } else SRDotDX.echo('No campaigns found matching "' + (p[1]?p[1]:'') + '". Valid values are: ' + Object.keys(SRDotDX.camps).join(', ')); return false; }); holodeck.addDotdChatCommand('raid,rd', function(deck,text) { //var p = /^\/raid (.*?)(?: ([1-6]))?$/i.exec(text); var p = text.split(' '); if (p[1]) { var msg = '', n, i; var diff = !isNaN(p[2]) ? p[2] - 1 : -1; var fnd = p[1].toLowerCase(); for (i in SRDotDX.raids) { if (SRDotDX.raids.hasOwnProperty(i)) { var raid = SRDotDX.raids[i]; if (raid.name.toLowerCase().indexOf(fnd) > -1) { msg += '' + raid.name + ''; msg += '
' + (raid.type == '' ? '' : raid.type + '
') + SRDotDX.raidSizes[raid.size].name + ' Raid (' + (raid.size == 101 ? 100 : raid.size) + ' slots) | ' + raid.duration + 'h'; msg += '
'; switch (diff) { case 0: msg += ''; break; case 1: msg += ''; break; case 2: msg += ''; break; case 3: msg += ''; break; default: msg += ''; break; } var size = raid.size < 15 ? 10 : raid.size, fs = [], j = 4; while(j--) fs[j] = raid.health[j]/(raid.size == 101 ? 100 : raid.size); msg += ' \ \ \ \ \ \ '; if (typeof raid.lt != 'object' && raid.id != 'rhalmarius_the_despoiler' && raid.id != 'grundus') { var ratio = SRDotDX.raidSizes[size].ratios; var ename = SRDotDX.raidSizes[size].enames; for(j=0; j 0) msg += ''; } } else if(typeof raid.lt == 'object') { var elen = SRDotDX.lootTiers[raid.lt[0]].tiers; var eleh = SRDotDX.lootTiers[raid.lt[1]].tiers; var elel = SRDotDX.lootTiers[raid.lt[2]].tiers; var elenm= SRDotDX.lootTiers[raid.lt[3]].tiers; var epics = SRDotDX.lootTiers[raid.lt[0]].epics; var best = SRDotDX.lootTiers[raid.lt[0]].best; var e = SRDotDX.lootTiers[raid.lt[0]].e?'E':''; for(j=0; j'; } } msg += '
NormalHardLegendNMare
HP' + SRDotDX.util.getShortNum(raid.health[0]) + '' + SRDotDX.util.getShortNum(raid.health[1]) + '' + SRDotDX.util.getShortNum(raid.health[2]) + '' + SRDotDX.util.getShortNum(raid.health[3]) + '
FS' + SRDotDX.util.getShortNum(fs[0]) + '' + SRDotDX.util.getShortNum(fs[1]) + '' + SRDotDX.util.getShortNum(fs[2]) + '' + SRDotDX.util.getShortNum(fs[3]) + '
AP' + SRDotDX.util.getShortNum(fs[3]/2.0) + '
'+ename[j]+''+SRDotDX.util.getShortNum(fs[0]*ratio[j])+''+SRDotDX.util.getShortNum(fs[1]*ratio[j])+''+SRDotDX.util.getShortNum(fs[2]*ratio[j])+''+SRDotDX.util.getShortNum(fs[3]*ratio[j])+'
'+epics[j]+e+''+elen[j]+''+eleh[j]+''+elel[j]+''+elenm[j]+'
' } } } if (msg != '') { SRDotDX.echo('*loading....*'); setTimeout( function(){ var chats = document.getElementsByClassName('chat_message_window'); for (i=1; i 0) { var ele = elem[elem.length-1]; ele.innerHTML = ele.innerHTML.slice(0,-13) + msg; chats[i].scrollTop = chats[i].scrollHeight; break; } } }, 100); } else SRDotDX.echo('No raids found matching: ' + p[1]); } else SRDotDX.echo('/raid: Invalid parameters specified (help)'); return false; }); window.onbeforeunload = function() { SRDotDX.config.save(false) }; SRDotDX.fails = 0; console.log('[DotDX] Core loaded. Loading user interface...'); SRDotDX.gui.load(); SRDotDX.request.init(); setTimeout(function() { delete SRDotDX.load }, 100); } else if (++SRDotDX.fails < 20) { console.log('[DotDX] Missing needed Kong resources (try:' + SRDotDX.fails + '), retrying in 0.75 second...'); setTimeout( SRDotDX.load, 750); } else { console.log('[DotDX] Unable to locate required Kong resources. Loading aborted'); setTimeout(function() { delete SRDotDX }, 1); } } }; console.log('[DotDX] Initialized. Checking for needed Kong resources ...'); SRDotDX.load(); } //if (window.top == window.self && (/^http:\/\/www\.kongregate\.com\/games\/5thplanetgames\/dawn-of-the-dragons(?:\/?$|\?|#)/i.test(document.location.href))) { //main if (window.top == window.self && (/^http:\/\/www\.kongregate\.com\/games.+/i.test(document.location.href))) { //main console.log('[DotDX] Initializing ...'); document.addEventListener("dotd.req", function(param) { var p = JSON.parse(param.data); if (p.wrappedJSObject) p = p.wrappedJSObject; p.callback = function (e, r) { this.onload = null; this.onerror = null; this.ontimeout = null; this.event = e; this.status = r.status; this.responseText = r.responseText; //console.log('[DotDX] Callback: ' + JSON.stringify(this)); var c = document.createEvent("MessageEvent"); if (c.initMessageEvent) c.initMessageEvent(this.eventName, false, false, JSON.stringify(this), document.location.protocol + "//" + document.location.hostname, 1, unsafeWindow, null); else c = new MessageEvent(this.eventName, {"origin": document.location.protocol + "//" + document.location.hostname, "lastEventId": 1, "source": unsafeWindow, "data": JSON.stringify(this)}); document.dispatchEvent(c); }; p.onload = p.callback.bind(p, "load"); p.onerror = p.callback.bind(p, "error"); p.ontimeout = p.callback.bind(p, "timeout"); setTimeout(function(){ GM_xmlhttpRequest(p) }, 1); //GM_xmlhttpRequest(p); }); var scr = document.createElement('script'); scr.appendChild(document.createTextNode('(' + main + ')()')); (document.head || document.body || document.documentElement).appendChild(scr); }