Script này sẽ không được không được cài đặt trực tiếp. Nó là một thư viện cho các script khác để bao gồm các chỉ thị meta
// @require https://update.greasyfork.org/scripts/399274/787111/Reference.js
/***Reference Tab***/
Tabs.Reference = {
tabOrder: 1120,
tabLabel: 'Reference',
unitsaccuracy: [],
z: null,
keyz: null,
myDiv: null,
UniqueTRItems : null,
UniqueCHItems : null,
MultiFaction : [30230,30231,30240,30241,30250,30251,30261,30262,30263,30264,30265,30266],
TechBoosts : {1:0.1,2:0.1,3:0.1,4:0.1,5:0.1,6:0,8:0.05,9:0.05,10:0.1,11:0.1,12:0.05,13:0.05,14:0.1,15:0.05,16:0.1,17:0.01},
BritonTechBoosts : {1:0.05,2:0.01,3:0.05,4:0.05,5:0.02,6:0.02},
JewelQuality: [],
chSorted : false,
chSortArray : [],
trSorted : false,
trSortArray : [],
GloryResetTime : 0,
init: function (div) {
var t = Tabs.Reference;
uWExportFunction('btShowAccuracyPop',Tabs.Reference.AccuracyPop);
t.z = CM.WorldSettings.getSettingAsObject("UNIT_ACCURACY_MODIFIER");
t.keyz = uW.Object.keys(uWCloneInto(t.z));
// accuracy matrix only has certain troops and defences
t.unitsaccuracy = [];
for (var ui=0;ui<t.keyz.length;ui++) {
if (t.keyz[ui]) {
var i = CM.UNIT_TYPES[t.keyz[ui]];
if (i==null) {
if (t.keyz[ui]=="FORTIFICATION_TYPE_ARCHERTOWER") { i = 53; }
else if (t.keyz[ui]=="FORTIFICATION_TYPE_GREEK_FIRE") { i = 63; }
else if (t.keyz[ui]=="VIRTUAL_UNIT_TYPE_DEFENSIVE_TOWER") { i = 100; }
else if (t.keyz[ui]=="VIRTUAL_UNIT_TYPE_DEFENSIVE_TOWER_REDOUBT") { i = 99; }
else { i = 0; } // no idea what this is, but we need it in the array
}
t.unitsaccuracy.push(i);
}
}
for (var J=0;J<=4;J++) {
t.JewelQuality.push(uW.g_js_strings.jewel["quality_"+J]);
}
var UniqueItems = {};
eval(GM_getResourceText("champion_uniques"));
t.UniqueCHItems = JSON.parse(JSON.stringify(UniqueItems));
for (var i=28001;i<29000;i++) {
if (!uW.itemlist['i'+i]) continue;
if (!t.UniqueCHItems[i]) {
t.UniqueCHItems[i] = {Id:i,Name:uW.itemlist['i'+i].name, Effects:[],Faction:0,Type:0};
}
var CHCard = t.BuildChampCard(i,0);
uW.ksoItems[i].description = t.DisplayCHCard(CHCard,false);
}
UniqueItems = {};
UniqueItems = CM.WorldSettings.getSettingAsObject("TR_UNIQUE_ITEMS");
for (var k in UniqueItems) {
var throne_item = UniqueItems[k];
if (parseInt(throne_item.Id) < 29000) delete UniqueItems[k];
throne_item.Name = uW.itemlist["i"+throne_item.Id].name;
if (t.MultiFaction.indexOf(parseInt(throne_item.Id))!=-1) {
throne_item.Name = throne_item.Name + ' ('+uW.g_js_strings.commonstr[cardFaction[throne_item.Faction-1]]+')';
}
}
t.UniqueTRItems = JSON.parse(JSON.stringify(UniqueItems));
for (var i in t.UniqueTRItems) {
if (!uW.itemlist['i'+i]) continue;
var TRCard = t.BuildThroneCard(i,1);
uW.ksoItems[i].description = t.DisplayTRCard(TRCard,false);
}
t.myDiv = div;
var ag = ByCl('avatarGlory')[0];
if (ag) {
ag.addEventListener('mouseover',t.checkGloryReset,false);
t.checkGloryReset();
}
},
checkGloryReset : function () {
var t = Tabs.Reference;
var now = unixTime();
var ag = ByCl('avatarGlory')[0];
if (ag) {
if (t.GloryResetTime < now) {
var params = uW.Object.clone(uW.g_ajaxparams);
params.perPage = 10;
params.type = "glory";
params.page = 'X';
new MyAjaxRequest(uW.g_ajaxpath + "ajax/getUserLeaderboard.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
onSuccess: function (rslt) {
if (rslt.gloryResetTime) {
t.GloryResetTime = rslt.gloryResetTime;
ag.title = tx('Glory resets in '+timestr(t.GloryResetTime-now));
}
},
});
}
else {
ag.title = tx('Glory resets in '+timestr(t.GloryResetTime-now));
}
}
},
show: function () {
var t = Tabs.Reference;
var troopa, troopb;
dt = new Date();
dt.setTime(Seed.player.datejoinUnixTime * 1000);
m = '<div>';
m += '<div class="divHeader" align="center">'+tx('REFERENCE SECTION')+'</div>';
m += '<div align="center">';
m += '<table align=center>';
m += '<TR><TD class=xtab> </td><td align=right class=xtab>'+uW.g_js_strings.commonstr.nametx+':</td><td class=xtab><b>'+Seed.player.name+'</b></td><td class=xtab align=right>'+uW.g_js_strings.commonstr.alliance+':</td><td class=xtab><b>'+getMyAlliance()[1]+'</b></td></tr>';
m += '<TR><TD class=xtab> </td><td align=right class=xtab>'+tx("UID")+':</td><td class=xtab><b>'+uW.tvuid+'</b></td><td align=right class=xtab>'+tx('FBUID')+':</td><td class=xtab><b>'+uW.user_id+'</b></td></tr>';
m += '<TR><TD class=xtab> </td><td align=right class=xtab>'+uW.g_js_strings.commonstr.domain+':</td><td class=xtab><b>'+uW.domainName+'</b></td><td class=xtab align=right>'+tx('Playing Since')+':</td><td class=xtab><b>'+dt.toLocaleDateString()+'</b></td></tr>';
m += '<TR><TD class=xtab> </td><td align=right class=xtab>'+tx('Camelot Version')+':</td><td class=xtab><b>'+anticd.getKOCversion()+'</b></td><td class=xtab align=right>'+tx('PowerBot+ Version')+':</td><td class=xtab><b>'+Version+'</b></td></tr>';
m += '<TR><TD class=xtab> </td><td align=right class=xtab>'+tx('Browser')+':</td><td class=xtab><b>'+FFVersion.Browser+' '+FFVersion.Version+'</b></td><td class=xtab align=right>'+GMVersion.Handler+':</td><td class=xtab><b>'+GMVersion.Version+'</b></td></tr>';
m += '</table><br></div>';
// links
m += '<a id=btLinkLink class=divLink ><div class="divHeader" align="left"><img id=btLinkArrow height="10" src="'+RightArrow+'"> '+tx('USEFUL LINKS')+'</div></a>';
m += '<div id=btLink class=divHide>';
m += '<TABLE align=center cellpadding=1 cellspacing=0>';
m += '<TR><TD class=xtabHD width="300px">'+tx('Scripts')+'</td><TD class=xtabHD width="300px">'+tx('Information sites')+'</td></tr>';
m += '<TR><TD class=xtab><a class=xlink href="https://www.facebook.com/PowerBotPlus" target="_blank">'+tx('Power Bot Plus (Facebook Page)')+'</a></td>';
m += '<TD class=xtab><a class=xlink href="http://www.slideshare.net/Aderik/documents" target="_blank">'+tx('Aderik\'s Tutorials')+'</a></td></tr>';
m += '<TR><TD class=xtab><a class=xlink href="https://greasyfork.org/en/scripts/889-koc-additional-throne-monitor" target="_blank">'+tx('Additional Throne Monitor (Greasyfork)')+'</a></td>';
m += '<TD class=xtab><a class=xlink href="https://www.facebook.com/groups/SolarsKOCinfoPage/" target="_blank">'+tx('KOC Information (Facebook Group)')+'</a></td></tr>';
m += '<TR><TD class=xtab><a class=xlink href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/?page=1#version-1.15.1-signed" target="_blank">'+tx('Greasemonkey (Version 1.15)')+'</a></td>';
m += '<TD class=xtab><a class=xlink href="https://www.facebook.com/groups/1467954843521680/" target="_blank">'+tx('Elements of KOC (Facebook Group)')+'</a></td></tr>';
m += '<TR><TD class=xtab><a class=xlink href="http://tampermonkey.net/" target="_blank">Tampermonkey (Chrome, Opera, Safari etc)</a></td>';
m += '<TD class=xtab><a class=xlink href="http://basickoc.weebly.com/" target="_blank">'+tx('KOC Basics')+'</a></td></tr>';
m += '<TR><TD class=xtab><a class=xlink href="https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/" target="_blank">ViolentMonkey (Firefox)</a></td>';
m += '<TD class=xtab><a class=xlink href="http://koc.wikia.com/wiki/" target="_blank">'+tx('KofC Wiki')+'</a></td></tr>';
m += '<TR><TD class=xtab><a class=xlink href="https://addons.mozilla.org/en/firefox/addon/scriptish/versions/" target="_blank">Scriptish</a></td>';
m += '<TD class=xtab><a class=xlink href="http://f89kocguide.weebly.com/" target="_blank">'+tx('F89 Unofficial KOC Guide')+'</a></td></tr>';
m += '<TR><TD class=xtab><a class=xlink href="https://chrome.google.com/webstore/detail/clean-on-refresh/moogoheinbbibflghkinbcmgkncleoid" target="_blank">'+tx('Clean on Refresh (Chrome)')+'</a></td>';
m += '<TD class=xtab><a class=xlink href="http://koc.weezeewig.com/index.sjs?f=ListServers" target="_blank">'+tx('KofC Mapper')+'</a></td></tr>';
m += '</table><BR></div>';
// map
m += '<a id=btMapLink class=divLink ><div class="divHeader" align="left"><img id=btMapArrow height="10" src="'+RightArrow+'"> '+tx('MAP')+'</div></a>';
m += '<div id=btMap class=divHide>';
m += '<BR><TABLE align=center cellpadding=1 cellspacing=0>';
m += '<TR><TD colspan=2 class=xtab align=left><DIV id=ptProvMap style="height:' + provMapCoords.imgHeight + 'px; width:' + provMapCoords.imgWidth + 'px; background-repeat:no-repeat; background-image:url(\'' + URL_PROVINCE_MAP + '\')"></div></td></tr>';
m += '<TR><TD colspan=2 class=xtab align=center><DIV style="color:#000;font-size:14px; border: 1px solid; background-color:white; margin:20px 3px 3px 0px; padding:4px" id=ptdistout> </div></td></tr>';
m += '<TR><TD class=xtab align=left><B>'+tx('First Location')+': </b></td><TD class=xtab> X: <INPUT id=calcX type=text\> Y: <INPUT id=calcY type=text\> '+tx('Or, choose city')+': <SPAN id=ptloc1></span></td></tr>';
m += '<TR><TD class=xtab align=left><B>'+tx('Second Location')+': </b></td><TD class=xtab> X: <INPUT id=calcX2 type=text\> Y: <INPUT id=calcY2 type=text\> '+tx('Or, choose city')+': <SPAN id=ptloc2></span></td></tr></table>';
m += '<br></div>';
// unit information
var rownum = 1;
m += '<a id=btUnitInfoLink class=divLink ><div class="divHeader" align="left"><img id=btUnitInfoArrow height="10" src="'+RightArrow+'"> '+tx('UNIT INFORMATION')+'</div></a>';
m += '<div id=btUnitInfo class=divHide>';
var u = '<TABLE align=center cellpadding=1 cellspacing=0>';
var ch = '<TR align=center><TD class=xtab></td><TD class=xtab></td><TD class=xtabHL colspan=8><B>'+tx('Base Stats')+'</b></td><TD class=xtabHL colspan=5><B>'+tx('Cost to Build')+'</b></td><TD class=xtabHL><B>'+tx('Upkeep')+'</b></td></tr>\
<TR valign=bottom align=right><TD class=xtab></td><TD class=xtab></td><TD class=xtabHL>'+uW.g_js_strings.commonstr.might+'</td><TD class=xtabH>'+uW.g_js_strings.commonstr.life+'</td><TD class=xtabH>'+uW.g_js_strings.commonstr.atk+'</td><TD class=xtabH>'+tx('Def')+'</td><TD class=xtabH>'+uW.g_js_strings.commonstr.speed+'</td><TD class=xtabH>'+uW.g_js_strings.commonstr.range+'</td><TD class=xtabH>'+uW.g_js_strings.modal_barracks_train.load+'</td><TD class=xtabH>'+tx('Spell')+'</td>\
<TD class=xtabHL>'+uW.g_js_strings.commonstr.food+'</td><TD class=xtabH>'+uW.g_js_strings.commonstr.wood+'</td><TD class=xtabH>'+uW.g_js_strings.commonstr.stone+'</td><TD class=xtabH>'+uW.g_js_strings.commonstr.ore+'</td><TD class=xtabH>'+tx('Pop')+'</td><TD class=xtabHL>'+uW.g_js_strings.commonstr.food+'</td></tr>\
<TR style="height:1px;"><TD style="padding:0px; spacing:0px; height:1px; border-color:black; border-width: 1px; border-style: none none solid none" colspan=16></td></tr>';
u += ch;
for (var ui in CM.UNIT_TYPES) {
i = CM.UNIT_TYPES[ui];
if (++rownum % 2) { rsty = 'evenRow'; }
else { rsty = 'oddRow'; }
cost = uW.unitcost['unt' + i]; // NAME, Food, Wood, Stone, Ore, ?, IdlePop, Time
stats = uW.unitstats['unt' + i]; // Life, Attack, Defense, Speed, Range, Load, Might, SpellPower
food = uW.unitupkeeps[i];
might = uW.unitmight['unt' + i];
u += '<TR class="'+rsty+'" align=right><TD class=xtab align=left><B>'+TroopImage(i,"vertical-align:middle;")+cost[0].substr(0,20)+'</b></td><TD class=xtab align=right>'+capitalize(CM.unitFrontendType[i])+'</td>';
u += '<TD class=xtabL>'+might+'</td><TD class=xtab>'+stats[0]+'</td><TD class=xtab>'+stats[1]+'</td><TD class=xtab>'+stats[2]+'</td><TD class=xtab>'+stats[3]+'</td><TD class=xtab>'+stats[4]+'</td><TD class=xtab>'+stats[5]+'</td><TD class=xtab>'+(stats[7]?stats[7]:"")+'</td>';
if (!CM.BarracksUnitsTypeMap.isUnitType(i, "rare")) {
u+= '<TD class=xtabL>'+cost[1]+'</td><TD class=xtab>'+cost[2]+'</td><TD class=xtab>'+cost[3]+'</td><TD class=xtab>'+cost[4]+'</td><TD class=xtab>'+cost[6]+'</td>';
}
else {
u+= '<TD colspan=5 class=xtabL align=center><span style="opacity:0.6;"><i>'+uW.g_js_strings.modal_openBarracks.rarettl+'</i></span></td>';
}
u += '<TD class=xtabL>'+food+'</td></tr>';
}
u += '<TR class=xtabLine><TD colspan=16 class=xtabLine></td></tr>';
u += ch;
for (var k in uW.fortcost) {
if (++rownum % 2) { rsty = 'evenRow'; }
else { rsty = 'oddRow'; }
cost = uW.fortcost[k]; // NAME, Food, Wood, Stone, Ore, ?, IdlePop, Time
fi = k.substring(3);
stats = uW.fortstats['unt' + fi]; // Life, Attack, Defense, Speed, Range, Space
food = 0;
might = fortmight['f' + fi];
var name = cost[0].replace(tx('Defensive'), '');
name = name.replace(tx('Wall-Mounted'), '');
var dtype = tx('Field');
if (fi < 60 || fi==63) { dtype = tx('Wall'); }
u += '<TR class="'+rsty+'" align=right><TD align=left class=xtab><B>'+TroopImage(fi,"vertical-align:middle;")+name+'</b></td><TD class=xtab>'+dtype+'</td><TD class=xtabL>'+might+'</td>\
<TD class=xtab>'+stats[0]+'</td><TD class=xtab>'+stats[1]+'</td><TD class=xtab>'+stats[2]+'</td><TD class=xtab>'+stats[3]+'</td>\
<TD class=xtab>'+stats[4]+'</td><TD class=xtab>'+stats[5]+'</td><TD class=xtab>'+(stats[7]?stats[7]:"")+'</td><TD class=xtabL>'+cost[1]+'</td><TD class=xtab>'+cost[2]+'</td>\
<TD class=xtab>'+cost[3]+'</td><TD class=xtab>'+cost[4]+'</td><TD class=xtab>'+(cost[6]||'')+'</td><TD class=xtabL> </td></tr>';
}
u += '<TR class=xtabLine><TD colspan=16 class=xtabLine></td></tr>';
m += u + '</table><BR></div>';
// research
var rownum = 1;
m += '<a id=btResearchInfoLink class=divLink ><div class="divHeader" align="left"><img id=btResearchInfoArrow height="10" src="'+RightArrow+'"> '+tx('RESEARCH LEVELS')+'</div></a>';
m += '<div id=btResearchInfo class=divHide>';
m += '<TABLE width=95% align=center class=xtab><TR valign=top align=center><td><table class=xtab border=1px cellpadding=2 cellspacing=0><TR valign=top align=left><td><b>'+uW.g_js_strings.commonstr.research+'</b></td><td align=center><b>'+uW.g_js_strings.commonstr.level+'</b></td><td align=right><b>'+tx('Bonus')+'</b></td></tr>';
for (var i in uW.techcost) {
if (++rownum % 2) { rsty = 'evenRow'; }
else { rsty = 'oddRow'; }
var csty = '<span>';
var ui = i.split("tch")[1];
if (Seed.tech[i] == uW.Research.Methods.maxLevel(ui, 1)) csty = '<span style="color:#080">';
if (Seed.tech[i] == 0) csty = '<span style="color:#800">';
m += '<tr class="'+rsty+'"><TD style="width:150px;" title="'+uW.techcost[i][10]+'">' + uW.techcost[i][0] + '</td><TD align=center style="width:50px; max-width:150px;">'+csty+Seed.tech[i]+'</span></td><TD align=right style="width:50px; max-width:150px;">'+csty+(t.TechBoosts[ui]!=0?parseInt(parseIntNan(Seed.tech[i])*t.TechBoosts[ui]*100)+'%':'')+'</span></td></tr>';
}
m += '</table></td>';
m += '<td><table class=xtab border=1px cellpadding=2 cellspacing=0><TR valign=top align=left><td><b>'+tx('Briton Research')+'</b></td><td align=center><b>'+uW.g_js_strings.commonstr.level+'</b></td><td align=right><b>'+tx('Bonus')+'</b></td></tr>';
rownum = 1;
for (var i in uW.techcost2) {
if (++rownum % 2) { rsty = 'evenRow'; }
else { rsty = 'oddRow'; }
var csty = '<span>';
var ui = i.split("tch")[1];
if (Seed.tech2[i] == uW.Research.Methods.maxLevel(ui, 2)) csty = '<span style="color:#080">';
if (Seed.tech2[i] == 0) csty = '<span style="color:#800">';
m += '<tr class="'+rsty+'"><TD style="width:150px;" title="'+uW.techcost2[i][10]+'">' + uW.techcost2[i][0] + '</td><TD align=center style="width:50px; max-width:150px;">'+csty+Seed.tech2[i]+'</span></td><TD align=right style="width:50px; max-width:150px;">'+csty+(t.BritonTechBoosts[ui]!=0?parseInt(parseIntNan(Seed.tech2[i])*t.BritonTechBoosts[ui]*100)+'%':'')+'</span></td></tr>';
m += '</td></tr>';
}
m += '</table></td></tr></table></div>';
// tr Caps
m += '<a id=btRefCapsLink class=divLink ><div class="divHeader" align="left"><img id=btRefCapsArrow height="10" src="'+RightArrow+'"> '+tx('THRONE ROOM CAPS')+'</div></a>';
m += '<div id=btRefCaps class=divHide>';
var caps = '<br><TABLE class=xtab align=center border=1px cellspacing=0 cellpadding=2>';
caps += '<TR><TD width="200px"><B>'+tx('Effect Name')+'</b></td><TD width="50px"><B>'+uW.g_js_strings.commonstr.max+'</b></td><TD width="50px"><B>'+tx('Min')+'</b></td><TD style="border:0;width:10px"> </td><TD width="200px"><B>'+tx('Effect Name')+'</b></td><TD width="50px"><B>'+uW.g_js_strings.commonstr.max+'</b></td><TD width="50px"><B>'+tx('Min')+'</b></td></tr>';
var boosts = [];
for (var k in uW.cm.thronestats.boosts) {
if (uW.cm.thronestats.boosts[k].BoostName) {
boosts.push(uW.cm.thronestats.boosts[k]);
}
}
boosts.sort(function(a, b){ return a.BoostName > b.BoostName});
var counter = 0;
var rownum = 0;
caps += '<TR class=oddRow>';
for (var k in boosts) {
counter++
var boost = boosts[k]
if (boost.BoostName) {
caps += '<TD>'+boost.BoostName+'</td><TD>'+boost.Max+'<SPAN id=capmaxPerc_'+k+'></span></div></td><TD>'+boost.Min+'<SPAN id=capminPerc_'+k+'></span></div>';
if (counter % 2 == 0) {
if (++rownum % 2) { rsty = 'evenRow'; }
else { rsty = 'oddRow'; }
caps += '<TR class="'+rsty+'">';
}
else { caps += '</td><TD style="border:0">'; }
}
}
m += caps + '</table><br></div>';
// ch Caps
m += '<a id=btRefChCapsLink class=divLink ><div class="divHeader" align="left"><img id=btRefChCapsArrow height="10" src="'+RightArrow+'"> '+tx('CHAMPION HALL CAPS')+'</div></a>';
m += '<div id=btRefChCaps class=divHide>';
var caps = '<br><TABLE class=xtab align=center border=1px cellspacing=0 cellpadding=2>';
caps += '<TR><TD width="200px"><B>'+tx('Effect Name')+'</b></td><TD width="50px"><B>'+uW.g_js_strings.commonstr.max+'</b></td><TD width="50px"><B>'+tx('Min')+'</b></td><TD style="border:0;width:10px"> </td><TD width="200px"><B>'+tx('Effect Name')+'</b></td><TD width="50px"><B>'+uW.g_js_strings.commonstr.max+'</b></td><TD width="50px"><B>'+tx('Min')+'</b></td></tr>';
var boosts = [];
for (var k in CE_EFFECT_TIERS) {
if (CE_EFFECT_TIERS[k].Id_Tier && (CE_EFFECT_TIERS[k].Max != 0 || CE_EFFECT_TIERS[k].Min !=0)) {
effsplit=CE_EFFECT_TIERS[k]["Id_Tier"].split(",");
if (effsplit[1]==1) { // caps are at tier 1 (?)
var boost = {};
boost.BoostName = CM.ChampionManager.getEffectName(effsplit[0]);
boost.Effect = effsplit[0];
boost.Max = CE_EFFECT_TIERS[k].Max;
boost.Min = CE_EFFECT_TIERS[k].Min;
boosts.push(boost);
}
}
}
boosts.sort(function(a, b){ return a.BoostName > b.BoostName});
var counter = 0;
var rownum = 0;
caps += '<TR class=oddRow>';
for (var k in boosts) {
counter++
var boost = boosts[k]
if (boost.BoostName) {
caps += '<TD>'+boost.BoostName+'</td><TD>'+boost.Max+'<SPAN id=chcapmaxPerc_'+k+'></span></div></td><TD>'+boost.Min+'<SPAN id=chcapminPerc_'+k+'></span></div>';
if (counter % 2 == 0) {
if (++rownum % 2) { rsty = 'evenRow'; }
else { rsty = 'oddRow'; }
caps += '<TR class="'+rsty+'">';
}
else { caps += '</td><TD style="border:0">'; }
}
}
m += caps + '</table><br></div>';
// glory icons
m += '<a id=btRefIconsLink class=divLink ><div class="divHeader" align="left"><img id=btRefIconsArrow height="10" src="'+RightArrow+'"> '+tx('GLORY ICONS')+'</div></a>';
m += '<div id=btRefIcons class=divHide>';
var icons = '<br><TABLE class=xtab align=center style="background:'+Options.Colors.Panel+';border:2px;">';
icons += '<TR><TD width="50px" align=right><B>'+tx('Icon')+'</b></td><TD width="200px"><B>'+uW.g_js_strings.commonstr.glory+'</b></td><TD style="border:0;width:10px"> </td><TD width="50px" align=right><B>'+tx('Icon')+'</b></td><TD width="200px"><B>'+uW.g_js_strings.commonstr.glory+'</b></td></tr><TR>';
var iconarray = [];
for (var k in Seed.gloryChatMapping) {
iconarray.push(k);
}
var counter = 0;
for (var k=0;k<iconarray.length;k++) {
counter++
var start = addCommas(iconarray[k]);
if (k<iconarray.length-1) { var end = ' - '+addCommas(iconarray[k+1]-1); }
else { var end = ' +'; }
icons += '<TD align=right><img src="'+IMGURL+'chat_'+Seed.gloryChatMapping[iconarray[k]]+'.png"></td><TD>'+start+end+'</td>';
if (counter % 2 == 0) { icons += '</tr><TR>'; }
else { icons += '<TD style="border:0"> </td>'; }
}
m += icons + '</tr></table><br></div>';
// throne uniques
m += '<a id=btRefTRUniqueLink class=divLink ><div class="divHeader" align="left"><img id=btRefTRUniqueArrow height="10" src="'+RightArrow+'"> '+tx('UNIQUE THRONE ROOM CARDS')+'</div></a>';
m += '<div id=btRefTRUnique class=divHide></div>';
// champ uniques
m += '<a id=btRefCHUniqueLink class=divLink ><div class="divHeader" align="left"><img id=btRefCHUniqueArrow height="10" src="'+RightArrow+'"> '+tx('UNIQUE CHAMPION CARDS')+'</div></a>';
m += '<div id=btRefCHUnique class=divHide></div>';
// accuracy
m += '<a id=btRefAccuracyLink class=divLink ><div class="divHeader" align="left"><img id=btRefAccuracyArrow height="10" src="'+RightArrow+'"> '+tx('ACCURACY MATRIX')+'</div></a>';
m += '<div id=btRefAccuracy class=divHide>';
m += '<DIV style="padding-top:4px;max-height:750px;overflow-y:scroll;width:'+GlobalOptions.btWinSize.x+'px";overflow-x:scroll;">'+strButton8(tx('Show Full Table'), 'onclick="btShowAccuracyPop();"');
m += t.BuildAccuracyTable()+'</div><br></div></br>';
t.myDiv.innerHTML = m;
t.PaintTRUniques(ById('btRefTRUnique'));
t.PaintCHUniques(ById('btRefCHUnique'));
if (!OpenDiv["Reference"]) { OpenDiv["Reference"] = ""; }
if (OpenDiv["Reference"] != "") {
var LastOpenDiv = OpenDiv["Reference"];
OpenDiv["Reference"] = "";
ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,LastOpenDiv,true);
}
ById('btRefCapsLink').addEventListener ('click', function () {ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,"btRefCaps",true)}, false);
ById('btRefChCapsLink').addEventListener ('click', function () {ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,"btRefChCaps",true)}, false);
ById('btRefTRUniqueLink').addEventListener ('click', function () {ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,"btRefTRUnique",true)}, false);
ById('btRefCHUniqueLink').addEventListener ('click', function () {ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,"btRefCHUnique",true)}, false);
ById('btRefAccuracyLink').addEventListener ('click', function () {ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,"btRefAccuracy",true)}, false);
ById('btRefIconsLink').addEventListener ('click', function () {ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,"btRefIcons",true)}, false);
ById('btUnitInfoLink').addEventListener ('click', function () {ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,"btUnitInfo",true)}, false);
ById('btResearchInfoLink').addEventListener ('click', function () {ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,"btResearchInfo",true)}, false);
ById('btLinkLink').addEventListener ('click', function () {ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,"btLink",true)}, false);
ById('btMapLink').addEventListener ('click', function () {ToggleMainDivDisplay("Reference",100,GlobalOptions.btWinSize.x,"btMap",true)}, false);
for (var k in boosts) {
var boost = boosts[k]
if (boost.CapType == "percent") {
if (boost.Max != "none") { ById('capmaxPerc_' + k).innerHTML = '%'; }
if (boost.Min != "none") { ById('capminPerc_' + k).innerHTML = '%'; }
}
}
for (var c = 0; c < Cities.numCities; c++)
PlotCityImage(c, ById('ptProvMap'));
if (Seed.allianceHQ) {
PlotAllianceHQ(ById('ptProvMap'),[]);
}
new CdispCityPicker('ptloc1', ById('ptloc1'), true, t.eventLocChanged).bindToXYboxes(ById('calcX'), ById('calcY'));
new CdispCityPicker('ptloc2', ById('ptloc2'), true, t.eventLocChanged).bindToXYboxes(ById('calcX2'), ById('calcY2'));
t.eventLocChanged(Cities.cities[0], Cities.cities[0].x, Cities.cities[0].y);
},
AccuracyPop: function () {
var t = Tabs.Reference;
var helpText = '<div>'+t.BuildAccuracyTable()+'<br> </div>';
var pop = new CPopup ('BotAccuracy', 0, 0, 800, 800, true);
pop.centerMe (mainPop.getMainDiv());
pop.getMainDiv().innerHTML = helpText;
pop.getTopDiv().innerHTML = '<CENTER><B>'+tx("Accuracy Matrix")+'</b></center>';
pop.show (true);
ResetFrameSize('BotAccuracy',800,800);
},
BuildAccuracyTable: function () {
var t = Tabs.Reference;
var main = '<TABLE cellpadding=0 cellspacing=0 align=left><TR>';
main += '<TD class=xtab></td><TD align=center colspan='+ (t.unitsaccuracy.length+1) +' class=xtab><b>'+uW.g_js_strings.commonstr.target+'</b></td></tr>';
main += '<TR><TD class=xtabHD> </td>';
for (var iu=0;iu<t.unitsaccuracy.length;iu++) {
var u = t.unitsaccuracy[iu];
if (u!=0) {
if (u==99) main += '<TD width=30 class=xtabHD align=center><img style="vertical-align:middle;" src="'+IMGURL+'units/redoubt_30.jpg" title="'+uW.buildingcost.bdg31[0]+'" width=30></td>';
else if (u==100) main += '<TD width=30 class=xtabHD align=center><img style="vertical-align:middle;" src="'+IMGURL+'units/tower_30.jpg" title="'+uW.buildingcost.bdg30[0]+'" width=30></td>';
else {
main += '<TD width=30 class=xtabHD align=center>' + TroopImageBig(u) + '</td>';
}
}
}
main += '</tr>';
var r = 0;
for (var ui=0;ui<t.unitsaccuracy.length;ui++) {
var u = t.unitsaccuracy[ui];
if (u != 0) {
if (++r % 2) { rowClass = 'evenRow'; }
else { rowClass = 'oddRow'; }
main += '<TR class="'+rowClass+'">';
if (u<51) {
main += '<TD class=xtab align=right><b>' + uW.unitcost['unt'+u][0] + '</b></td>';
}
else {
if (u==99) rowtext = uW.g_js_strings.redoubt.redoubt
else if (u==100) rowtext = uW.g_js_strings.tower.towerName
else {
var rowtext = uW.fortcost['frt'+u][0];
if (u==53) { rowtext = tx('Crossbows'); } // "Wall Mounted Crossbows" is pointlessly long!
}
main += '<TD class=xtab align=right><b>' + rowtext + '</b></td>';
}
troopa = t.keyz[ui];
for (var uj=0;uj<t.unitsaccuracy.length;uj++) {
var cellstyle = '';
if (ui==uj) { cellstyle = 'style="background: rgba(0,0,0,0.10);"'; }
troopb = t.keyz[uj];
if (!t.z[troopa] || !t.z[troopa][troopb])
main += '<TD class=xtab align=center '+cellstyle+'>??</td>';
else
main += '<TD class=xtab align=center '+cellstyle+'>' + t.z[troopa][troopb] + '</td>';
}
main += '</tr>';
}
}
main += '</table>';
return main;
},
plotMapImg: function (markNum, eMap, x, y) {
var t = Tabs.Reference;
var xplot = parseInt((provMapCoords.mapWidth * x) / 750);
var yplot = parseInt((provMapCoords.mapHeight * y) / 750);
if (ById('plotmap_' + markNum) == null) {
var ce = document.createElement('div');
ce.style.background = 'black';
ce.id = 'plotmap_' + markNum;
ce.style.opacity = '1.0';
ce.style.position = 'relative';
ce.style.display = 'block';
ce.style.width = '16px';
ce.style.height = '16px';
ce.style.border = '1px solid #fff';
ce.style.color = 'white';
ce.style.textAlign = 'center';
} else {
ce = ById('plotmap_' + markNum);
}
ce.style.top = (yplot + provMapCoords.topMargin - ((Cities.numCities + markNum) * 16) - 8) + 'px';
ce.style.left = (xplot + provMapCoords.leftMargin - 8) + 'px';
ce.title = "("+x+','+y+')';
eMap.appendChild(ce);
ce.innerHTML = (markNum + 1) + '';
},
eventLocChanged: function (city, x, y) {
var t = Tabs.Reference;
var x1 = parseInt(ById('calcX').value);
var y1 = parseInt(ById('calcY').value);
if (!isNaN(x1) && !isNaN(y1)) {
t.plotMapImg(0, ById('ptProvMap'), x1, y1);
}
var x2 = parseInt(ById('calcX2').value);
var y2 = parseInt(ById('calcY2').value);
if (!isNaN(x2) && !isNaN(y2)) {
t.plotMapImg(1, ById('ptProvMap'), x2, y2);
}
if (!isNaN(x1) && !isNaN(y1) && !isNaN(x2) && !isNaN(y2)) {
var m = tx('The distance from')+' ' + x1 + ',' + y1 + ' '+tx('to')+' ' + x2 + ',' + y2 + ' '+tx('is')+': <B>' + distance(x1, y1, x2, y2).toFixed(2) + '</b>';
ById('ptdistout').innerHTML = m;
}
},
PaintTRUniques: function (div) {
var t = Tabs.Reference;
var maxlevel = CM.MAX_MASTERS_TOKEN_LEVEL;
var selectedCard1 = 0;
var selectedCard2 = 0;
var selectedType1 = 0;
var selectedType2 = 0;
uWExportFunction('pbrefreshuniques', Tabs.Reference.GetInventory);
t.trSortArray = [];
for (var k in t.UniqueTRItems) {
t.trSortArray.push(t.UniqueTRItems[k]);
}
if (t.trSorted) {
t.trSortArray.sort(function(a, b){ if (a.Name<b.Name) return -1; if (a.Name>b.Name) return 1; return 0; });
}
var m = '<div align=center style="height:480px;overflow-y:auto;">';
m += '<TABLE width=90% class=xtabBR>';
m += '<tr align=center><td width=50%/></td><td width=50%/><div align=right><INPUT id=bttrUniqueSort type=checkbox '+(t.trSorted?"CHECKED" : "")+'/> '+tx("Sort Alphabetically")+'</div></td></tr>';
m += '<tr><td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.type+': </b><select id="bttrUniqueType1">';
m += '<option value="0">-- '+tx('ALL')+' --</option>';
for (var type_index = 0; type_index < trTypes.length; ++type_index) {
m += '<option value="' + trTypes[type_index] + '">' + uW.g_js_strings.throneRoom[trTypes[type_index]] + '</option>';
}
m += '</select></div></td>';
m += '<td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.type+': </b><select id="bttrUniqueType2">';
m += '<option value="0">-- '+tx('ALL')+' --</option>';
for (var type_index = 0; type_index < trTypes.length; ++type_index) {
m += '<option value="' + trTypes[type_index] + '">' + uW.g_js_strings.throneRoom[trTypes[type_index]] + '</option>';
}
m += '</select></div></td>';
m += '<tr><td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.item+': </b><select id="bttrUnique1">';
m += '<option value="0">-- '+uW.g_js_strings.commonstr.items+' --</option>';
for (var k=0;k<t.trSortArray.length;k++) {
var throne_item = t.trSortArray[k];
if (throne_item == null || !throne_item) continue;
var style = '';
if (throne_item.Faction == 0) style = 'style="color:#aaa;"';
m += '<option '+style+' value="' + throne_item.Id + '">' + throne_item.Name + ' </option>';
}
m += '</select></div></td>';
m += '<td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.item+': </b><select id="bttrUnique2">';
m += '<option value="0">-- '+uW.g_js_strings.commonstr.items+' --</option>';
for (var k=0;k<t.trSortArray.length;k++) {
var throne_item = t.trSortArray[k];
if (throne_item == null || !throne_item) continue;
var style = '';
if (throne_item.Faction == 0) style = 'style="color:#aaa;"';
m += '<option '+style+' value="' + throne_item.Id + '">' + throne_item.Name + ' </option>';
}
m += '</select></div></td>';
m += '<tr><td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.level+': </b><select id="bttrUniqueLevel1">';
m += '<option value="1" selected>1</option>';
for (var type_index = 2; type_index < maxlevel + 1; ++type_index) {
m += '<option value="' + type_index + '">' + type_index + '</option>';
}
m += '</select></div></td>';
m += '<td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.level+': </b><select id="bttrUniqueLevel2">';
m += '<option value="1" selected>1</option>';
for (var type_index = 2; type_index < maxlevel + 1; ++type_index) {
m += '<option value="' + type_index + '">' + type_index + '</option>';
}
m += '</select></div></td></tr>';
m += '<tr>';
m += '<td id="bttrUniqueItem1" style="overflow: visible; width: auto; height: auto;"/>';
m += '<td id="bttrUniqueItem2" style="overflow: visible; width: auto; height: auto;"/>';
m += '</tr>';
m += '<tr>';
m += '<td id="bttrUniqueInv1" style="overflow: visible; width: auto; height: auto;"/>';
m += '<td id="bttrUniqueInv2" style="overflow: visible; width: auto; height: auto;"/>';
m += '</tr>';
m += '</TABLE>';
m += '</div>';
div.innerHTML = m;
ById('bttrUniqueSort').addEventListener('click', function (e) {
t.trSorted = e.target.checked;
t.PaintTRUniques(div);
},false)
jQuery("#bttrUniqueType1").change(function () {
var trType = ById('bttrUniqueType1').value;
var trList = ById('bttrUnique1');
if (selectedType1 != trType && trType != 0) {
selectedCard1 = 0;
}
jQuery("#bttrUnique1").empty();
var trOption = document.createElement('option');
trOption.text = '-- '+uW.g_js_strings.commonstr.items+' --';
trOption.value = 0;
trList.add(trOption);
for (var k=0;k<t.trSortArray.length;k++) {
var throne_item = t.trSortArray[k];
if (throne_item == null || !throne_item) continue;
if (trTypes[parseInt(throne_item.Type)-1] == trType || trType == 0) {
var trOption = document.createElement('option');
trOption.text = throne_item.Name;
trOption.value = throne_item.Id;
trList.add(trOption);
}
}
if (selectedCard1 != 0) {
jQuery("#bttrUnique1").val(selectedCard1);
}
});
jQuery("#bttrUniqueType2").change(function () {
var trType = ById('bttrUniqueType2').value;
var trList = ById('bttrUnique2');
if (selectedType2 != trType && trType != 0) {
selectedCard2 = 0;
}
jQuery("#bttrUnique2").empty();
var trOption = document.createElement('option');
trOption.text = '-- '+uW.g_js_strings.commonstr.items+' --';
trOption.value = 0;
trList.add(trOption);
for (var k=0;k<t.trSortArray.length;k++) {
var throne_item = t.trSortArray[k];
if (throne_item == null || !throne_item) continue;
if (trTypes[parseInt(throne_item.Type)-1] == trType || trType == 0) {
var trOption = document.createElement('option');
trOption.text = throne_item.Name;
trOption.value = throne_item.Id;
trList.add(trOption);
}
}
if (selectedCard2 != 0) {
jQuery("#bttrUnique2").val(selectedCard2);
}
});
jQuery("#bttrUnique1").change(function () { changeUnique1(this); });
jQuery("#bttrUnique1").keyup(function (event) { changeUnique1(this); });
function changeUnique1(thisObj) {
var trID = jQuery(thisObj).val();
var trDisplay = ById('bttrUniqueItem1');
var trLevel = ById('bttrUniqueLevel1');
selectedCard1 = 0;
ConvertToCard(trID,trDisplay,trLevel);
t.GetInventory(trID,'bttrUniqueInv1');
selectedCard1 = trID;
selectedType1 = trTypes[parseInt(t.UniqueTRItems[trID].Type)-1];
}
jQuery("#bttrUnique2").change(function () { changeUnique2(this); });
jQuery("#bttrUnique2").keyup(function (event) { changeUnique2(this); });
function changeUnique2(thisObj) {
var trID = jQuery(thisObj).val();
var trDisplay = ById('bttrUniqueItem2');
var trLevel = ById('bttrUniqueLevel2');
selectedCard2 = 0;
ConvertToCard(trID,trDisplay,trLevel);
t.GetInventory(trID,'bttrUniqueInv2');
selectedCard2 = trID;
selectedType2 = trTypes[parseInt(t.UniqueTRItems[trID].Type)-1];
}
jQuery("#bttrUniqueLevel1").keyup(function (event) { changeLevel1(); });
jQuery("#bttrUniqueLevel1").change(function () { changeLevel1(); });
function changeLevel1() {
if (selectedCard1 != 0) {
var trID = selectedCard1;
var trDisplay = ById('bttrUniqueItem1');
var trLevel = ById('bttrUniqueLevel1');
trDisplay.innerHTML = '';
ConvertToCard(trID,trDisplay,trLevel);
}
}
jQuery("#bttrUniqueLevel2").keyup(function (event) { changeLevel2(); });
jQuery("#bttrUniqueLevel2").change(function () { changeLevel2(); });
function changeLevel2() {
if (selectedCard2 != 0) {
var trID = selectedCard2;
var trDisplay = ById('bttrUniqueItem2');
var trLevel = ById('bttrUniqueLevel2');
trDisplay.innerHTML = '';
ConvertToCard(trID,trDisplay,trLevel);
}
}
function ConvertToCard (trID,div,lvl) {
div.innerHTML = '';
var TRCard = t.BuildThroneCard(trID,parseIntNan(lvl.value));
div.innerHTML = t.DisplayTRCard(TRCard,true);
};
},
BuildThroneCard : function (trID,lvl) {
var t = Tabs.Reference;
var TRCard = {};
TRCard = t.UniqueTRItems[trID];
TRCard.id = TRCard.Id;
TRCard.name = uW.itemlist["i"+trID].name;
if (TRCard.Faction != 0) {
TRCard.faction = cardFaction[TRCard.Faction-1];
TRCard.type = trTypes[parseInt(TRCard.Type)-1].toLowerCase();
}
else {
TRCard.faction = 'unknown';
TRCard.type = 'unknown';
TRCard.unknown = true;
}
TRCard.unique = TRCard.id;
TRCard.level = lvl;
TRCard.quality = 6;
TRCard.createPrefix = function () { return ""; };
TRCard.createSuffix = function () { return ""; };
TRCard.effects = {};
var effects = eval(TRCard.Effects);
var slot = 0;
for (var k in effects) {
slot++
TRCard.effects["slot"+slot] = {};
TRCard.effects["slot"+slot].id = effects[k].type;
TRCard.effects["slot"+slot].tier = effects[k].tier;
if (slot==6) {
var qual = 5; // assume bright jewel
if (UniqueJewels && UniqueJewels.hasOwnProperty(TRCard.id)) { // some uniques don't have bright jewels...
qual = UniqueJewels[TRCard.id];
}
TRCard.effects["slot"+slot].quality = qual;
TRCard.effects["slot"+slot].fromJewel = true;
TRCard.jewel = {};
TRCard.jewel.valid = true;
TRCard.jewel.id = TRCard.effects["slot"+slot].id;
TRCard.jewel.quality = qual;
TRCard.jewel.tier = TRCard.effects["slot"+slot].tier;
TRCard.jewel.fromJewel = true;
TRCard.jewel.gift = false;
TRCard.jewel.quantity = 1;
}
}
return TRCard;
},
GetInventory : function (trID,div) {
var t = Tabs.Reference;
div.innerHTML = '';
var m = '<br><b>'+uW.g_js_strings.commonstr.throneroom+'</b><br>';
var tritem = {};
for (var k in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[k];
if (throne_item.unique == trID) {
if (tritem[throne_item.level]) {tritem[throne_item.level]++} else {tritem[throne_item.level] = 1;}
}
}
var gotitem = false;
for (var l in tritem) {
gotitem = true;
m += tx('You have')+' '+tritem[l]+' '+tx('at level')+' '+l+'<br>';
}
if (!gotitem) m += tx('You have none in your throne room')+'.<br>';
else {
//if (t.UniqueTRItems[trID].Faction == 0) {
m += '<a class=xlink id=pbgenstats'+trID+'>Generate Stats</a><br>';
//}
}
m += '<br><b>'+uW.g_js_strings.commonstr.inventory+'</b><br>';
var inv = uW.seed.items['i'+trID];
m += tx('You have')+' '+(inv?inv:uW.g_js_strings.commonstr.none)+' '+tx('in your inventory')+'.';
if ((inv?inv:0) != 0 && !gotitem) {
m += '<br><a class=xlink onClick="cm.ItemController.use(\''+trID+'\');setTimeout(function(){pbrefreshuniques('+trID+',\''+div+'\')},2000);">'+tx('Add to Throne Room')+'</a>';
}
ById(div).innerHTML = m;
if (ById('pbgenstats'+trID)) {
ById('pbgenstats'+trID).addEventListener('click',function () { window.prompt(tx("Copy to clipboard: Ctrl+C"), GenerateStats(trID)); } , false);
}
function GenerateStats(trID) {
for (var k in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[k];
if (throne_item.unique == trID) {
var Results = 'UniqueItems["'+trID+'"] = {Id:'+trID+',Name:"'+throne_item.name+'", Effects:[';
var firsteffect = true;
for (var e in throne_item.effects) {
if (!firsteffect) Results += ',';
Results += '{type:'+throne_item.effects[e].id+',tier:'+throne_item.effects[e].tier+'}';
firsteffect = false;
}
Results += '],Faction:'+(cardFaction.indexOf(throne_item.faction)+1)+',Type:'+(trTypes.indexOf(throne_item.type)+1)+'};';
break;
}
}
return Results;
}
},
DisplayTRCard : function (throne_item,Links,ScaleFactor) {
var t = Tabs.Reference;
var D = [];
if (throne_item == null) {
D.push("<div>");
D.push("</div>");
return D.join("");
}
if (!ScaleFactor) { ScaleFactor = 1; }
var CardWidth = Math.floor(200*ScaleFactor);
var BigFont = Math.floor(14*ScaleFactor);
var ImageSize = Math.floor(70*ScaleFactor);
var SmallFont = Math.floor(11*ScaleFactor);
var E = []; // copy to clip/post to chat array
D.push("<div style='overflow: hidden; position: relative; left: 0px; top: 0px;'>");
D.push(" <div id='throneInventoryItemTooltip'>");
D.push("<div class='section' style='overflow:visible;width:"+CardWidth+"px;' id='idsection'>");
D.push(" <div class='title " + throne_item.createPrefix().toLowerCase() + "' style='color:#3F2300;text-transform:capitalize;font-size:"+BigFont+"px;'> ");
D.push(throne_item.name + (throne_item.unique ? " +" + throne_item.level : ""));
D.push(" </div> ");
D.push(" <div class='description'> ");
var uniquestyle = "";
if (throne_item.isBroken) {
uniquestyle = 'width:'+ImageSize+'px;height:'+ImageSize+'px;background:transparent url('+BrokenIcon+'); top left no-repeat; background-size:'+ImageSize+'px '+ImageSize+'px;';
}
else {
if (throne_item.unique > 29000) {
uniquestyle = 'width:'+ImageSize+'px;height:'+ImageSize+'px;background:transparent url('+IMGURL+'throne/icons/70/'+throne_item.faction+'_'+throne_item.type+'_unique_'+throne_item.unique + '.png); top left no-repeat; background-size:'+ImageSize+'px '+ImageSize+'px;';
if (throne_item.unique == 30262 || throne_item.unique == 30264 || throne_item.unique == 30266) { uniquestyle = 'width:'+ImageSize+'px;height:'+ImageSize+'px;background:transparent url('+IMGURL+'throne/icons/70/christmas_advisor_normal_1.png); top left no-repeat; background-size:'+ImageSize+'px '+ImageSize+'px;'; }
if (throne_item.unique == 30261 || throne_item.unique == 30263 || throne_item.unique == 30265) { uniquestyle = 'width:'+ImageSize+'px;height:'+ImageSize+'px;background:transparent url('+IMGURL+'throne/icons/70/christmas_candelabrum_normal_1.png); top left no-repeat; background-size:'+ImageSize+'px '+ImageSize+'px;'; }
if (throne_item.unique == 30230 || throne_item.unique == 30240 || throne_item.unique == 30250) { uniquestyle = 'width:'+ImageSize+'px;height:'+ImageSize+'px;background:transparent url('+IMGURL+'throne/icons/70/halloween_table_normal_1.png); top left no-repeat; background-size:'+ImageSize+'px '+ImageSize+'px;'; }
if (throne_item.unique == 30231 || throne_item.unique == 30241 || throne_item.unique == 30251) { uniquestyle = 'width:'+ImageSize+'px;height:'+ImageSize+'px;background:transparent url('+IMGURL+'throne/icons/70/halloween_chair_normal_1.png); top left no-repeat; background-size:'+ImageSize+'px '+ImageSize+'px;'; }
}
else {
uniquestyle = 'width:'+ImageSize+'px;height:'+ImageSize+'px;background:transparent url('+IMGURL+'throne/icons/70/'+throne_item.faction+'_'+throne_item.type+'_normal_1_'+throne_item.quality+'.png); top left no-repeat; background-size:'+ImageSize+'px '+ImageSize+'px;';
}
}
D.push("<div class='portrait " + throne_item.faction + " " + throne_item.type + "' style='"+uniquestyle+"'> </div> ");
D.push("<ul style='margin-top:0px;'>");
D.push("<li style='float:none;margin:0px;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.faction + ": " + uW.g_js_strings.commonstr[throne_item.faction] + "</li>");
D.push("<li style='float:none;margin:0px;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.quality + ": " + CardQuality(throne_item.quality,throne_item.unique) + "</li>");
D.push("<li style='float:none;margin:0px;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.type + ": " + uW.g_js_strings.throneRoom[throne_item.type] + "</li>");
D.push("<li style='float:none;margin:0px;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.level + ": " + throne_item.level + "</li>");
D.push("<li style='float:none;margin:0px;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.might + ": " + CardMight(throne_item) + "</li>");
if (throne_item.jewel && throne_item.jewel.valid) { D.push("<li style='float:none;margin:0px;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.jewel + ": " + t.JewelQuality[throne_item.jewel.quality-1] + "</li>"); }
D.push("</ul>");
D.push(" </div> ");
D.push(" <ul> ");
E.push(throne_item.name.replace(/\'/g, "") + (throne_item.unique ? " +" + throne_item.level : ""));
E.push(uW.g_js_strings.commonstr.faction + ": " + uW.g_js_strings.commonstr[throne_item.faction]);
E.push(uW.g_js_strings.commonstr.quality + ": " + CardQuality(throne_item.quality,throne_item.unique));
E.push(uW.g_js_strings.commonstr.type + ": " + uW.g_js_strings.throneRoom[throne_item.type]);
// E.push(uW.g_js_strings.commonstr.level + ": " + throne_item.level);
E.push(uW.g_js_strings.commonstr.might + ": " + CardMight(throne_item));
if (throne_item.jewel && throne_item.jewel.valid) { E.push(uW.g_js_strings.commonstr.jewel + ": " + t.JewelQuality[throne_item.jewel.quality-1]); }
if (throne_item.unknown) {
if (Links) {
D.push(" <li style='font-size:"+BigFont+"px;' class='effect'><center>"+tx("Unknown")+"</center></li> ");
D.push(" <li style='font-size:"+BigFont+"px;' class='effect'><div style='font-size:"+SmallFont+"px;'><center>"+tx("If you have one in your Throne Room please click the 'Generate Stats' link below and send the results to the script developer")+".</center></div></li>");
}
}
else {
for (var slot in throne_item.effects) {
try {
var N = throne_item.effects[slot];
tier = parseInt(N.tier);
effect = getThroneEffectName(N.id,tier);
p = uW.cm.thronestats.tiers[N.id][tier];
while (!p && (tier > 0)) { tier--; p = uW.cm.thronestats.tiers[N.id][tier]; }
if (!p) continue; // can't find stats for tier
var base = +p.base || 0;
var level = +throne_item.level || 0;
var growth = +p.growth || 0;
if (slot == 'slot6') { //if it has a slot 6, it automatically has a jewel
JewelQuality = throne_item["effects"]['slot6'].quality;
GrowthLimit = uW.cm.thronestats.jewelGrowthLimit[JewelQuality];
if (GrowthLimit <= level) level = GrowthLimit
}
percent = Number(base + ((level * level + level) * growth * 0.5));
var wholeNumber = false;
if (Math.round(parseFloat(percent)) == parseFloat(percent)) wholeNumber = true;
percent = (percent > 0) ? "+" + percent : +percent;
if (wholeNumber)
percent = parseFloat(percent).toFixed(0);
else
percent = parseFloat(percent).toFixed(2);
css = (slot % 2 === 0) ? "even" : "odd";
B = +(slot.split("slot")[1]);
percent = (percent > 0) ? "+" + percent : percent;
if (B <= throne_item.quality) {
D.push(" <li class='effect " + css + "' style='float:none;margin:0px;font-size:"+BigFont+"px;'> " + percent + "% " + effect + " </li> ");
} else {
D.push(" <li class='effect disabled " + css + "' style='float:none;margin:0px;font-size:"+BigFont+"px;'> " + percent + "% " + effect + " </li> ");
}
E.push("Row " + B + ": " + percent + "% " + effect);
}
catch (e) { }
}
}
D.push(" </ul> ");
D.push(" </div> ");
D.push(" </ul> ");
D.push(" </div> ");
D.push(" </div> ");
var cText = ":::. |" + E.join('||');
var clipText = E.join(' ');
if (Links) {
D.push('<table width="210" class=xtab><tr><td><a class=xlink onClick="window.prompt(\''+tx("Copy to clipboard: Ctrl+C")+'\', \''+clipText+'\');">'+tx("Copy to Clipboard")+'</a></td><td align=right><a class=xlink onClick="Chat.sendChat(\''+cText+'\')">'+tx("Post to Chat")+'</a></td></tr></table>');
}
return D.join("");
},
PaintCHUniques: function (div) {
var t = Tabs.Reference;
var maxlevel = CM.CHAMPION.MAX_LEVELS;
var itemTypes = { weapon: 0, chest: 1, helm: 2, boots: 3, shield: 4, ring: 5, pendant: 7, cloak: 8 };
var selectedCard1 = 0;
var selectedCard2 = 0;
var selectedType1 = 0;
var selectedType2 = 0;
uWExportFunction('pbrefreshchuniques', Tabs.Reference.GetCHInventory);
t.chSortArray = [];
for (var k in t.UniqueCHItems) {
t.chSortArray.push(t.UniqueCHItems[k]);
}
if (t.chSorted) {
t.chSortArray.sort(function(a, b){ var x=a.Set-b.Set; var y=0; if (a.name<b.name) y=-1; if (a.name>b.name) y=1; return (x==0)?y:x; });
}
var m = '<div align=center style="height:480px;overflow-y:auto;">';
m += '<TABLE width=90% class=xtabBR>';
m += '<tr align=center><td width=50%/></td><td width=50%/><div align=right><INPUT id=btchUniqueSort type=checkbox '+(t.chSorted?"CHECKED" : "")+'/> '+tx("Sort by Champion Set")+'</div></td></tr>';
m += '<tr><td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.type+': </b><select id="btchUniqueType1">';
m += '<option value="0">-- '+tx('ALL')+' --</option>';
for (var type in itemTypes) {
m += '<option value="' + type + '">' + uW.g_js_strings.champ[type] + '</option>';
}
m += '</select></div></td>';
m += '<td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.type+': </b><select id="btchUniqueType2">';
m += '<option value="0">-- '+tx('ALL')+' --</option>';
for (var type in itemTypes) {
m += '<option value="' + type + '">' + uW.g_js_strings.champ[type] + '</option>';
}
m += '</select></div></td>';
m += '<tr><td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.item+': </b><select id="btchUnique1">';
m += '<option value="0">-- '+uW.g_js_strings.commonstr.items+' --</option>';
for (var k=0;k<t.chSortArray.length;k++) {
var champ_item = t.chSortArray[k];
if (champ_item == null || !champ_item) continue;
var style = '';
if (champ_item.Faction == 0) style = 'style="color:#aaa;"';
m += '<option '+style+' value="' + champ_item.Id + '">' + uW.itemlist["i"+champ_item.Id].name + ' </option>';
}
m += '</select></div></td>';
m += '<td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.item+': </b><select id="btchUnique2">';
m += '<option value="0">-- '+uW.g_js_strings.commonstr.items+' --</option>';
for (var k=0;k<t.chSortArray.length;k++) {
var champ_item = t.chSortArray[k];
if (champ_item == null || !champ_item) continue;
var style = '';
if (champ_item.Faction == 0) style = 'style="color:#aaa;"';
m += '<option '+style+' value="' + champ_item.Id + '">' + uW.itemlist["i"+champ_item.Id].name + ' </option>';
}
m += '</select></div></td>';
m += '<tr><td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.level+': </b><select id="btchUniqueLevel1">';
m += '<option value="0" selected>0</option>';
for (var type_index = 1; type_index < maxlevel + 1; ++type_index) {
m += '<option value="' + type_index + '">' + type_index + '</option>';
}
m += '</select></div></td>';
m += '<td><div style="max-width:100%;"><b>'+uW.g_js_strings.commonstr.level+': </b><select id="btchUniqueLevel2">';
m += '<option value="0" selected>0</option>';
for (var type_index = 1; type_index < maxlevel + 1; ++type_index) {
m += '<option value="' + type_index + '">' + type_index + '</option>';
}
m += '</select></div></td></tr>';
m += '<tr>';
m += '<td id="btchUniqueItem1" style="overflow: visible; width: auto; height: auto;"/>';
m += '<td id="btchUniqueItem2" style="overflow: visible; width: auto; height: auto;"/>';
m += '</tr>';
m += '<tr>';
m += '<td id="btchUniqueInv1" style="overflow: visible; width: auto; height: auto;"/>';
m += '<td id="btchUniqueInv2" style="overflow: visible; width: auto; height: auto;"/>';
m += '</tr>';
m += '</TABLE>';
m += '</div>';
div.innerHTML = m;
ById('btchUniqueSort').addEventListener('click', function (e) {
t.chSorted = e.target.checked;
t.PaintCHUniques(div);
},false)
jQuery("#btchUniqueType1").change(function () {
var chType = ById('btchUniqueType1').value;
var chList = ById('btchUnique1');
if (selectedType1 != chType && chType != 0) {
selectedCard1 = 0;
}
jQuery("#btchUnique1").empty();
var chOption = document.createElement('option');
chOption.text = '-- '+uW.g_js_strings.commonstr.items+' --';
chOption.value = 0;
chList.add(chOption);
for (var k=0;k<t.chSortArray.length;k++) {
var champ_item = t.chSortArray[k];
if (champ_item == null || !champ_item) continue;
if (chTypeStrings[parseInt(champ_item.Type)-1] == chType || chType == 0) {
var chOption = document.createElement('option');
chOption.text = uW.itemlist["i"+champ_item.Id].name;
chOption.value = champ_item.Id;
if (champ_item.Faction == 0) chOption.style = 'color:#aaa;';
chList.add(chOption);
}
}
if (selectedCard1 != 0) {
jQuery("#btchUnique1").val(selectedCard1);
}
});
jQuery("#btchUniqueType2").change(function () {
var chType = ById('btchUniqueType2').value;
var chList = ById('btchUnique2');
if (selectedType2 != chType && chType != 0) {
selectedCard2 = 0;
}
jQuery("#btchUnique2").empty();
var chOption = document.createElement('option');
chOption.text = '-- '+uW.g_js_strings.commonstr.items+' --';
chOption.value = 0;
chList.add(chOption);
for (var k=0;k<t.chSortArray.length;k++) {
var champ_item = t.chSortArray[k];
if (champ_item == null || !champ_item) continue;
if (chTypeStrings[parseInt(champ_item.Type)-1] == chType || chType == 0) {
var chOption = document.createElement('option');
chOption.text = uW.itemlist["i"+champ_item.Id].name;
chOption.value = champ_item.Id;
if (champ_item.Faction == 0) chOption.style = 'color:#aaa;';
chList.add(chOption);
}
}
if (selectedCard2 != 0) {
jQuery("#btchUnique2").val(selectedCard2);
}
});
jQuery("#btchUnique1").change(function () { changeUnique1(this); });
jQuery("#btchUnique1").keyup(function (event) { changeUnique1(this); });
function changeUnique1(thisObj) {
var chID = jQuery(thisObj).val();
var chDisplay = ById('btchUniqueItem1');
var chLevel = ById('btchUniqueLevel1');
selectedCard1 = 0;
ConvertToCard(chID,chDisplay,chLevel);
t.GetCHInventory(chID,'btchUniqueInv1');
selectedCard1 = chID;
selectedType1 = chTypeStrings[parseInt(t.UniqueCHItems[chID].Type)-1];
}
jQuery("#btchUnique2").change(function () { changeUnique2(this); });
jQuery("#btchUnique2").keyup(function (event) { changeUnique2(this); });
function changeUnique2(thisObj) {
var chID = jQuery(thisObj).val();
var chDisplay = ById('btchUniqueItem2');
var chLevel = ById('btchUniqueLevel2');
selectedCard2 = 0;
ConvertToCard(chID,chDisplay,chLevel);
t.GetCHInventory(chID,'btchUniqueInv2');
selectedCard2 = chID;
selectedType2 = chTypeStrings[parseInt(t.UniqueCHItems[chID].Type)-1];
}
jQuery("#btchUniqueLevel1").keyup(function (event) { changeLevel1(); });
jQuery("#btchUniqueLevel1").change(function () { changeLevel1(); });
function changeLevel1() {
if (selectedCard1 != 0) {
var chID = selectedCard1;
var chDisplay = ById('btchUniqueItem1');
var chLevel = ById('btchUniqueLevel1');
chDisplay.innerHTML = '';
ConvertToCard(chID,chDisplay,chLevel);
}
}
jQuery("#btchUniqueLevel2").keyup(function (event) { changeLevel2(); });
jQuery("#btchUniqueLevel2").change(function () { changeLevel2(); });
function changeLevel2() {
if (selectedCard2 != 0) {
var chID = selectedCard2;
var chDisplay = ById('btchUniqueItem2');
var chLevel = ById('btchUniqueLevel2');
chDisplay.innerHTML = '';
ConvertToCard(chID,chDisplay,chLevel);
}
}
function ConvertToCard (chID,div,lvl) {
div.innerHTML = '';
var CHCard = t.BuildChampCard(chID,parseIntNan(lvl.value));
div.innerHTML = t.DisplayCHCard(CHCard,true);
};
},
BuildChampCard : function (chID,lvl) {
var t = Tabs.Reference;
var CHCard = {};
CHCard = t.UniqueCHItems[chID];
CHCard.uniqueCompare = true;
CHCard.id = CHCard.Id;
CHCard.name = uW.itemlist["i"+chID].name;
if (CHCard.Faction != 0) {
CHCard.faction = CHCard.Faction;
CHCard.type = CHCard.Type;
}
else {
CHCard.unknown = true;
}
CHCard.unique = CHCard.id;
CHCard.level = lvl;
CHCard.rarity = 5;
CHCard.createPrefix = function () { return ""; };
CHCard.createSuffix = function () { return ""; };
CHCard.effects = {};
var effects = eval(CHCard.Effects);
var slot = 0;
for (var k in effects) {
slot++
CHCard.effects["slot"+slot] = {};
CHCard.effects["slot"+slot].id = effects[k].type;
CHCard.effects["slot"+slot].tier = effects[k].tier;
}
return CHCard;
},
isBroken : function(champ_item) {
if (champ_item.status) {
return (champ_item.status < 0 || champ_item.status == 2 || champ_item.status == 3);
}
},
GetCHInventory : function (chID,div) {
var t = Tabs.Reference;
div.innerHTML = '';
var m = '<br><b>'+uW.g_js_strings.champ.title+'</b><br>';
var chitem = {};
for (var k in uW.kocChampionItems) {
var champ_item = uW.kocChampionItems[k];
if (champ_item.unique == chID) {
if (chitem[champ_item.level]) {chitem[champ_item.level]++} else {chitem[champ_item.level] = 1;}
}
}
var gotitem = false;
for (var l in chitem) {
gotitem = true;
m += tx('You have')+' '+chitem[l]+' '+tx('at level')+' '+l+'<br>';
}
if (!gotitem) m += tx('You have none in your champion hall')+'.<br>';
else {
if (t.UniqueCHItems[chID].Faction == 0) {
m += '<a class=xlink id=pbgenchstats'+chID+'>Generate Stats</a><br>';
}
}
m += '<br><b>'+uW.g_js_strings.commonstr.inventory+'</b><br>';
var inv = uW.seed.items['i'+chID];
m += tx('You have')+' '+(inv?inv:uW.g_js_strings.commonstr.none)+' '+tx('in your inventory')+'.';
if ((inv?inv:0) != 0) {
m += '<br><a class=xlink onClick="cm.ItemController.use(\''+chID+'\');setTimeout(function(){pbrefreshchuniques('+chID+',\''+div+'\')},2000);">'+tx('Add to Champion Hall')+'</a>';
}
ById(div).innerHTML = m;
if (ById('pbgenchstats'+chID)) {
ById('pbgenchstats'+chID).addEventListener('click',function () { window.prompt(tx("Copy to clipboard: Ctrl+C"), GenerateStats(chID)); } , false);
}
function GenerateStats(chID) {
for (var k in uW.kocChampionItems) {
var champ_item = uW.kocChampionItems[k];
if (champ_item.unique == chID) {
var Results = 'UniqueItems["'+chID+'"] = {Id:'+chID+',Name:"'+champ_item.subtype+'", Effects:[';
var firsteffect = true;
for (var e in champ_item.effects) {
if (!firsteffect) Results += ',';
Results += '{type:'+champ_item.effects[e].id+',tier:'+champ_item.effects[e].tier+'}';
firsteffect = false;
}
Results += '],Faction:'+champ_item.faction+',Type:'+champ_item.type+',Set:'+champ_item.set+'};';
break;
}
}
return Results;
}
},
DisplayCHCard : function (champ_item,Links,ScaleFactor,showChamp) {
var t = Tabs.Reference;
var D = [];
if (champ_item == null) {
D.push("<div>");
D.push("</div>");
return D.join("");
}
if (!ScaleFactor) { ScaleFactor = 1; }
var CardWidth = Math.floor(220*ScaleFactor);
var BigFont = Math.floor(14*ScaleFactor);
var ImageSize = Math.floor(70*ScaleFactor);
var SmallFont = Math.floor(12*ScaleFactor);
if (champ_item.rarity) champ_item.quality = parseIntNan(champ_item.rarity);
if (!champ_item.Type) champ_item.Type = parseIntNan(champ_item.type);
var E = []; // copy to clip/post to chat array
D.push("<div style='overflow: hidden; position: relative; left: 0px; top: 0px;'>");
D.push("<div id='throneInventoryItemTooltip'>");
D.push("<div class='section' style='overflow:visible;background:#E7E3D6;width:"+CardWidth+"px;color:#3f2300;' id='idsection'>");
D.push("<div class='title " + champ_item.createPrefix().toLowerCase() + "' style='text-transform:capitalize;background:#E7E3D6;border-bottom:2px solid #A4753A;font-size:"+BigFont+"px;'> ");
D.push(champ_item.name + (champ_item.uniqueCompare ? " +" + champ_item.level : ""));
D.push("</div>");
D.push("<div class='description' style='border-bottom:2px solid #A4753A;'>");
var uniquestyle = "";
if (t.isBroken(champ_item)) {
uniquestyle = 'width:'+ImageSize+'px;height:'+ImageSize+'px;background:transparent url('+BrokenIcon+'); top left no-repeat; background-size:'+ImageSize+'px '+ImageSize+'px;';
}
else {
if (champ_item.unique != 0) { uniquestyle = 'width:'+ImageSize+'px;height:'+ImageSize+'px;background:transparent url('+IMGURL+'champion_hall/unique_'+champUniqueImageTypes[champ_item.Type-1]+'_'+cardFaction[champ_item.faction-1]+'_70x70_'+champ_item.unique + '.png); top left no-repeat; background-size:'+ImageSize+'px '+ImageSize+'px;'; }
else { uniquestyle = 'width:'+ImageSize+'px;height:'+ImageSize+'px;background:transparent url('+IMGURL+'champion_hall/'+cardQuality[champ_item.rarity].toLowerCase()+'_'+champImageTypes[champ_item.Type-1]+'_'+cardFaction[champ_item.faction-1]+'_70x70.png); top left no-repeat; background-size:'+ImageSize+'px '+ImageSize+'px;'; }
}
D.push("<div class='portrait " + champ_item.faction + " " + champ_item.type + "' style='border:none;margin-left:3px;margin-top:8px;"+uniquestyle+"'> </div> ");
D.push("<ul>");
D.push("<li style='float:none;margin:0px;color:#A4753A;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.faction + ": " + (champ_item.unknown?"Unknown":uW.g_js_strings.commonstr[cardFaction[champ_item.faction-1]]) + "</li>");
D.push("<li style='float:none;margin:0px;color:#A4753A;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.quality + ": " + CardQuality(champ_item.rarity,champ_item.unique) + "</li>");
D.push("<li style='float:none;margin:0px;color:#A4753A;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.type + ": " + (champ_item.unknown?"Unknown":uW.g_js_strings.champ[chTypeStrings[champ_item.type-1]]) + "</li>");
D.push("<li style='float:none;margin:0px;color:#A4753A;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.level + ": " + champ_item.level + "</li>");
D.push("<li style='float:none;margin:0px;color:#A4753A;font-size:"+SmallFont+"px;'> " + uW.g_js_strings.commonstr.might + ": " + CardMight(champ_item,true) + "</li>");
if (showChamp && champ_item.equippedTo) {
for (var y in Seed.champion.champions) {
var chkchamp = Seed.champion.champions[y];
if (chkchamp.championId && chkchamp.championId==champ_item.equippedTo) {
D.push("<li style='float:none;margin:0px;color:#A4753A;font-size:"+SmallFont+"px;'> " + tx('Equipped') + ": " + chkchamp.name + "</li>");
break;
}
}
}
D.push("</ul>");
D.push("</div>");
D.push("<ul>");
E.push(champ_item.name.replace(/\'/g, "") + (champ_item.uniqueCompare ? " +" + champ_item.level : ""));
E.push(uW.g_js_strings.commonstr.faction + ": " + (champ_item.unknown?"Unknown":uW.g_js_strings.commonstr[cardFaction[champ_item.faction-1]]));
E.push(uW.g_js_strings.commonstr.quality + ": " + CardQuality(champ_item.rarity,champ_item.unique));
E.push(uW.g_js_strings.commonstr.type + ": " + (champ_item.unknown?"Unknown":uW.g_js_strings.commonstr[cardFaction[champ_item.faction-1]]));
// E.push(uW.g_js_strings.commonstr.level + ": " + champ_item.level);
E.push(uW.g_js_strings.commonstr.might + ": " + CardMight(champ_item,true));
if (champ_item.unknown) {
if (Links) {
D.push(" <li style='font-size:"+BigFont+"px;' class='effect'><center>"+tx("Unknown")+"</center></li> ");
D.push(" <li style='font-size:"+BigFont+"px;' class='effect'><div style='font-size:"+SmallFont+"px;'><center>"+tx("If you have one in your Champions Hall please click the 'Generate Stats' link below and send the results to the script developer")+".</center></div></li>");
}
}
else {
for (var slot in champ_item.effects) {
try {
var N = champ_item.effects[slot];
effect = uW.g_js_strings.effects["name_"+N.id];
tier = parseInt(N.tier);
p = ChampionStatTiers[N.id][tier];
while (!p && (tier > 0)) { tier--; p = ChampionStatTiers[N.id][tier]; }
if (!p) continue; // can't find stats for tier
var base = +p.base || 0;
var level = +champ_item.level || 0;
var growth = +p.growth || 0;
percent = Number(base + ((level * level + level) * growth * 0.5));
if (N.id>=300) {
percent = Number(base + (level * growth));
if (N.id<400) percent = percent*100;
}
var wholeNumber = false;
if (Math.round(parseFloat(percent)) == parseFloat(percent)) wholeNumber = true;
percent = (percent > 0) ? percent : +percent;
if (wholeNumber)
percent = parseFloat(percent).toFixed(0);
else
percent = parseFloat(percent).toFixed(2);
css = (slot % 2 === 0) ? "even" : "odd";
B = +(slot.split("slot")[1]);
if (!B) B = slot;
percent = (N.id>=300)?percent+'%':percent;
if (B <= champ_item.rarity) {
if (N.id < 200) {
D.push(" <li title='tier "+tier+"' class='effect " + css + "' style='float:none;margin:0px;color: #1751A5;font-size:"+BigFont+"px;'> " + percent + " " + effect + " </li> ");
}
else {
if (N.id >= 400) {
D.push(" <li title='tier "+tier+"' class='effect " + css + "' style='float:none;margin:0px;color: #f80;font-size:"+BigFont+"px;'> " + percent + " " + effect + " </li> ");
}
else {
if (N.id >= 300) {
D.push(" <li title='tier "+tier+"' class='effect " + css + "' style='float:none;margin:0px;color: #808;font-size:"+BigFont+"px;'> " + percent + " " + effect + " </li> ");
}
else {
D.push(" <li title='tier "+tier+"' class='effect " + css + "' style='float:none;margin:0px;font-size:"+BigFont+"px;'> " + percent + " " + effect + " </li> ");
}
}
}
} else {
D.push(" <li title='tier "+tier+"' class='effect disabled " + css + "' style='float:none;margin:0px;font-size:"+BigFont+"px;'> " + percent + " " + effect + " </li> ");
}
E.push("Row " + B + ": " + percent + " " + effect);
}
catch (e) { }
}
}
D.push(" </ul> ");
D.push(" </div> ");
D.push(" </ul> ");
D.push(" </div> ");
D.push(" </div> ");
var cText = ":::. |" + E.join('||');
var clipText = E.join(' ');
if (Links) {
D.push('<table width="210" class=xtab><tr><td><a class=xlink onClick="window.prompt(\''+tx("Copy to clipboard: Ctrl+C")+'\', \''+clipText+'\');">'+tx("Copy to Clipboard")+'</a></td><td align=right><a class=xlink onClick="Chat.sendChat(\''+cText+'\')">'+tx("Post to Chat")+'</a></td></tr></table>');
}
return D.join("");
},
}