IMGSRV_LIST = [
'https://img.niborea.com/pic',
'https://img.niborea.eu/pic'
];
function FindSpell(id)
{
var left = 0;
var right = spells.length - 1;
while (left <= right) {
var mid = Math.floor((left + right)/2);
var c = spells[mid][0] - id;
if (!c) return mid;
else if (c < 0) left = mid + 1;
else right = mid - 1;
}
return -1;
}
function GetSpellImage(id, size, width, style, extra)
{
var html = '';
if (userFlags&(1<<20)) {
index = FindSpell(id);
var itpostfix = (size&8)?((size&16)?'off':'on'):'';
html += "
";
} else {
var itprefix = (width==50)?((size&8)?((size&16)?2:3):0):1;
var cards_in_img = cards_per_img_x * cards_per_img_y;
var sid = Math.floor(id / cards_in_img);
var spos = id % cards_in_img;
var xpos = spos % cards_per_img_x;
var ypos = Math.floor(spos / cards_per_img_x);
html += "
";
}
return html;
}
function dd_allowDrop(ev)
{
ev.preventDefault();
}
function dd_drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
function dd_drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ServerWait(1);
AjaxGet("ajaxspell.php?exch1="+data+"&exch2="+ev.target.id, AjaxSpell);
}
function dd_dragQ(ev,obj)
{
var tmp = mouseCoords(ev);
tmp.id = obj;
ev.dataTransfer.setData("Text",JSON.stringify(tmp));
}
function dd_dropQ(ev)
{
ev.preventDefault();
var data = JSON.parse(ev.dataTransfer.getData("Text"));
var tmp = mouseCoords(ev);
data.x -= tmp.x;
data.y -= tmp.y;
ServerWait(1);
AjaxGet("ajaxhero.php?qmove="+quests[data.id][0]+"&x="+data.x+"&y="+data.y, AjaxHero);
}
function GetSpellHTML(hel, id, flags, level, exptime, iselect, pct, price, price1, flags2, size, extra_pre, extra_post, x, y)
{
if (id == -1) return '';
index = FindSpell(id);
if (index == -1) return '';
var width = 50;
if (size&1) width=25;
var html = '';
if (size&2) {
if (x >= 0 && y >= 0) {
html += "
";
}
html += extra_pre;
if (flags2 & 1) {
html += "
";
html += "

";
html += "
";
}
html += GetSpellImage(id, size, width, "cursor:pointer;"+((flags2&4)?"box-shadow:0px 0px 4px 2px rgba(255,155,155,0.5), inset 0px 0px 2px 2px rgba(255,155,155,0.5);":""),
((flags2&2)?" id='"+id+"' draggable='true' ondrop='dd_drop(event)' ondragover='dd_allowDrop(event)' ondragstart='dd_drag(event)'":"")+
" title='' onclick='javascript:ShowCard3("+chr(34)+hel+chr(34)+", "+index+", "+flags+", "+level+", "+exptime+", "+iselect+", "+pct+", "+price+", "+price1+", "+flags2+");'");
if (flags2 & 1) {
html += "
";
}
html += extra_post;
if (size&2) {
if (level>0) {
html += "
=99) html += "style='color:#ff40ff;'";
html += ">"+level+"
";
// html += "
"+level+"
";
}
html += "
";
}
return html;
}
function GetSpellInfoHTML(hel, id, exptime, size, flags)
{
return GetSpellHTML(hel, id, flags, 0, exptime, -1, -1, 0, 0, 0, size, '', '', -1, -1);
}
function RenderSpell(hel, id, flags, level, exptime, iselect, pct, price, price1, flags2, size, extra_pre, extra_post, x, y)
{
document.write(GetSpellHTML(hel, id, flags, level, exptime, iselect, pct, price, price1, flags2, size, extra_pre, extra_post, x, y));
}
function GetSpellsHTML(list, prefix, postfix, hel, flags, level, exptime, iselect, pct, price, price1, flags2, size, extra_pre, extra_post, x, y)
{
var html = '';
for(var i = 0; i < list.length; ++i) {
if (prefix) html += prefix;
html += GetSpellHTML(hel, list[i], flags, level, exptime, iselect, pct, price, price1, flags2, size, extra_pre, extra_post, x, y);
if (postfix) html += postfix;
}
return html;
}
function RenderSpells(list, prefix, postfix, hel, flags, level, exptime, iselect, pct, price, price1, flags2, size, extra_pre, extra_post, x, y)
{
document.write(GetSpellsHTML(list, prefix, postfix, hel, flags, level, exptime, iselect, pct, price, price1, flags2, size, extra_pre, extra_post, x, y));
}
function GetParametrizedSpellsHTML(list, hel)
{
var html = '';
for(var i = 0; i < list.length; ++i) {
if (list[i].length>1) {
html += GetSpellHTML(hel, list[i][0], list[i][1], list[i][2], list[i][3], list[i][4], list[i][5], 0, 0, list[i][6], 2, '', '', list[i][7], list[i][8]);
}
}
return html;
}
function FightTable(code, flags)
{
var rstr = '';
rstr +="\n";
rstr +=" | "+GetImageHTML(IMGSRV+"/mailhero.jpg", "", "")+" | "+GetImageHTML(IMGSRV+"/mailquest.jpg", "", "")+" |
";
rstr +=""+GetImageHTML(IMGSRV+"/mailattack.jpg", "", "")+" | "+GetImageHTML(IMGSRV+"/maildefense.jpg", "", "")+" | "+GetImageHTML(IMGSRV+"/mailattack.jpg", "", "")+" | "+GetImageHTML(IMGSRV+"/maildefense.jpg", "", "")+" |
";
var j = 0;
while(code) {
var spellid = parseInt(code);
code = strstr(code, ":").substr(1);
var index = FindSpell(spellid);
var atk1 = parseInt(code), atk2=0;
code = strstr(code, ",").substr(1);
var def1 = parseInt(code), def2=0;
if (code.indexOf(',')>=0 && code.indexOf('|')>code.indexOf(',')) {
code = strstr(code, ",").substr(1);
atk2 = parseInt(code);
code = strstr(code, ",").substr(1);
def2 = parseInt(code);
} else {
if (atk1 < 0) { atk2 = atk1; atk1 = 0;}
if (def1 < 0) { def2 = def1; def1 = 0;}
}
if (flags & 2) {
var tmp = atk2;
atk2 = atk1;
atk1 = tmp;
tmp = def2;
def2 = def1;
def1 = tmp;
}
code = strstr(code, "|").substr(1);
if (index == -1) continue;
var html;
if (j & 1) {
html = "";
} else {
html = "
";
}
html += "";
html += GetSpellImage(spellid,0,25,"","");
//html += GetImageHTML(IMGSRV+"/item/"+spells[index][3]+".png", '', "style='width:25px; height:25px;'");
html += " | ";
html += ""
if (atk1>0) html += "+";
html += atk1;
html += "% | ";
if (def1>0) html += "+";
html += def1;
html += "% | ";
if (atk2>0) html += "+";
html += atk2;
html += "% | ";
if (def2>0) html += "+";
html += def2;
html += "% | ";
html += "
";
rstr +=html;
++j;
}
rstr +="
\n";
return rstr;
}
function FightDisp(data)
{
var rstr = '';
var killed = strstr(data, "/", 1);
data = strstr(data, "/").substr(1);
var cast = strstr(data, "/", 1);
var cast2 = strstr(data, "/").substr(1);
var extra = strstr(cast2, "/");
var flags = 0;
if (extra) {
flags = parseInt(extra.substr(1));
cast2 = strstr(cast2, "/",1);
}
rstr +="\n";
rstr += FightTable(cast, 0 | flags);
rstr += FightTable(cast2, 1 | flags);
rstr +="
";
while(killed) {
var index = parseInt(killed);
killed = strstr(killed, ":").substr(1);
var cnt = parseInt(killed);
killed = strstr(killed, ",").substr(1);
var tcnt = parseInt(killed);
killed = strstr(killed, "|").substr(1);
var html = "
";
html += "
";
html += ""+GetImageHTML(IMGSRV+"/unit/"+units[index][3]+".png", '', '')+" | ";
html += ""+tcnt+" -"+cnt+" | ";
html += "
";
html += "
";
rstr +=html;
}
rstr +="
";
rstr +="
\n";
return rstr;
}
function FightNumbers(data1, data2)
{
var rstr = '';
rstr +="
\n";
rstr +=" | "+GetImageHTML(IMGSRV+"/mailhero.jpg", "", "")+" | "+GetImageHTML(IMGSRV+"/mailquest.jpg", "", "")+" |
";
rstr +=""+GetImageHTML(IMGSRV+"/mailattack.jpg", "", "")+" | "+GetImageHTML(IMGSRV+"/maildefense.jpg", "", "")+" | "+GetImageHTML(IMGSRV+"/mailattack.jpg", "", "")+" | "+GetImageHTML(IMGSRV+"/maildefense.jpg", "", "")+" |
";
rstr +="Hrdina | ";
for(var i = 0; i< 4; i ++) {
rstr +=""+data1[i]+" | ";
}
rstr +="
Náhoda | ";
for(var i = 0; i< 4; i ++) {
var delta = Math.round((data2[i]-data1[i])/(data1[i]?data1[i]:1)*1000)/10;
if (data2[i]"+delta+"%";
} else {
rstr +="+"+delta+"% | ";
}
}
rstr +="
Quest | ";
for(var i = 0; i< 4; i ++) {
rstr +=""+data2[i]+" | ";
}
rstr +="
";
return rstr;
}
function ReportReplace(str)
{
if (str.indexOf('~') == -1) return str;
var tokens = str.split('~');
var status = 0;
var rstr = '';
var cnt = 0;
var id = 0;
for(var i = 0; i < tokens.length; ++i) {
if (status) {
status = 0;
switch(tokens[i].substr(0,1)) {
case 'r': // resource
id = 1 * tokens[i].substr(1,1);
cnt = 1 * tokens[i].substr(2);
rstr += "
"+resourceDesc[id][0]+"
"+cnt+"";
break;
case 's': // spell
id = 1 * tokens[i].substr(1);
rstr += GetSpellHTML('bstat', id, 0, 0, -2, -1, -1000, 0, 0, 0, 1, '', '', -1, -1);
break;
case 'p': // prestiz
cnt = 1 * tokens[i].substr(1);
rstr += "
Prestíž
"+cnt+"";
break;
case 'w': // vitazne body
cnt = 1 * tokens[i].substr(1);
rstr += "
Víťazné body
"+cnt+"";
break;
case 'e': // skusenosti
cnt = 1 * tokens[i].substr(1);
rstr += "
"+cnt+" skúseností";
break;
}
} else {
status = 1;
rstr += tokens[i];
}
}
return rstr;
}
function QuestResDisp(u1, o1, u2, o2, ur1, or1, ur2, or2, res, rew, qs, exp)
{
var rstr = '';
var img = IMGSRV+'/quest/backquest';
if (res & 4) {
img += 'samial';
}
rstr +="
";
rstr +="
";
rstr +="
";
rstr +=" | Útok | Obrana |
";
rstr +="Hrdina | "+u1+" | "+o1+" |
";
var pu1 = Math.round((ur1-u1)/(u1?u1:1)*1000)/10;
var po1 = Math.round((or1-o1)/(o1?o1:1)*1000)/10;
var c1 = 'F20000', c2 ='F20000';
if (pu1 >= 0) {
c1 = '76FE82';
pu1 = '+'+pu1;
}
if (po1 >= 0) {
c2 = '76FE82';
po1 = '+'+po1;
}
rstr +="Náhoda | "+pu1+"% | "+po1+"% |
";
rstr +=" | "+ur1+" | "+or1+" |
";
rstr +=" |
";
rstr +="Quest | "+u2+" | "+o2+" |
";
var pu1 = Math.round((ur2-u2)/(u2?u2:1)*1000)/10;
var po1 = Math.round((or2-o2)/(o2?o2:1)*1000)/10;
var c1 = 'F20000', c2 ='F20000';
if (pu1 >= 0) {
c1 = '76FE82';
pu1 = '+'+pu1;
}
if (po1 >= 0) {
c2 = '76FE82';
po1 = '+'+po1;
}
rstr +="Náhoda | "+pu1+"% | "+po1+"% |
";
rstr +=" | "+ur2+" | "+or2+" |
";
rstr +="
";
rstr +="
";
if (res & 4) {
if (res & 1) {
rstr +="
Hrdina vyhrá quest !
";
} else {
rstr +="
Hrdina prehrá quest !
";
rstr +="
S pravdepodobnosťou "+exp+"% zomrie.
";
}
} else {
if (res & 1) {
rstr +="
Hrdina zvíťazil !
";
} else {
rstr +="
Hrdina prehral !
";
}
if (res & 2) {
rstr +="
Hrdina pri boji zomrel.
";
}
}
// rozbijeme string a nahradime resource a kuzla
rstr +="
";
qs = ReportReplace(qs);
rew = ReportReplace(rew);
if (rew.length) {
rstr +="
Získal si: "+rew+"
";
}
if (qs.length) {
rstr +="
"+qs+"
";
}
if (!(res & 4)) {
rstr +="
Hrdina spolu získal "+exp+" skúseností.
";
}
rstr +="
";
rstr +="
";
return rstr;
}
function SpyTable(code1, code2, flags)
{
var rstr = '';
rstr +="
\n";
if (0==flags) {
rstr +=" | "+GetImageHTML(IMGSRV+"/world/spionazhero.jpg", "", "")+" |
";
rstr +="Špionáž | Náročnosť |
";
} else {
rstr +=" | "+GetImageHTML(IMGSRV+"/world/spionazenemy.jpg", "", "")+" |
";
rstr +="Kontrašpionáž | Náročnosť |
";
}
var code = code1;
var j = 0, f = 0;
while(f < 2) {
if (code.length==0) {
f ++;
if (f > 1) break;
code = code2;
if (code.length==0) break;
}
var spellid = parseInt(code);
code = strstr(code, "/").substr(1);
var index = FindSpell(spellid);
var val = parseInt(code);
code = strstr(code, "|").substr(1);
if (index == -1) continue;
var html;
if (j & 1) {
html = "";
} else {
html = "
";
}
html += ""+GetSpellHTML('bstat', spellid, 0, 0, -2, -1, -1000, 0, 0, 0, 1, '', '', -1, -1)+" | ";
if (f) html += " | ";
if (flags==0 && f==0 && val >= 0) {
html += ""
} else if ((flags || f) && val < 0) {
html += " | "
} else {
html += " | "
}
if (val>0) html += "+";
html += val;
html += " | ";
if (!f) html += " | ";
html += "
";
rstr +=html;
++j;
}
rstr +="
\n";
return rstr;
}
function SpyDisp(home1, home2, enemy1, enemy2)
{
var rstr ="
\n";
rstr += SpyTable(home1, home2, 0);
rstr += SpyTable(enemy1, enemy2, 1);
rstr +="
\n";
rstr +="
";
return rstr;
}
function SpyResDisp(spy, contra, diff, rnd, res, qs, rew, home1, home2, enemy1, enemy2)
{
var rstr = '';
rstr +="
";
rstr +="
";
rstr +="
";
rstr +="Hodnoty špionáže |
";
rstr +="Špionáž | "+spy+" |
";
rstr +="Kontrašpionáž | "+contra+" |
";
rstr +="Náročnosť | "+diff+" |
";
var c1 = (rnd>0)?'76FE82':'f20000';
rstr +="Náhoda | "+rnd+" |
";
var numres = spy - contra - diff + rnd;
rstr +=" |
";
rstr +="Výsledok | "+numres+" |
";
rstr +="
";
rstr +="
";
if (res & 1) {
rstr +="
Špionáž bola úspešná !
";
} else {
rstr +="
Špionáž skončila fiaskom !
";
}
if (res & 2) {
rstr +="
Hrdina pri špionáži zomrel !
";
}
// rozbijeme string a nahradime resource a kuzla
rstr +="
";
qs = ReportReplace(qs);
rew = ReportReplace(rew);
if (rew.length) {
rstr +="
Získal si: "+rew+"
";
}
if (qs.length) {
rstr +="
"+qs+"
";
}
rstr +="
";
rstr +="
";
return rstr + SpyDisp(home1, home2, enemy1, enemy2);
}
function HTMLBigButton(text, onclick, css, id, style)
{
if (!(userFlags & 1073741824)) css += "_mini";
return "
"+text+"
";
}
function HTMLMiniButtons()
{
return (userFlags & 1073741824)?"":"_mini";
}
var keyframeprefix = '';
function findPrefix(property)
{
property = property.toLowerCase();
if (property.charAt(0) == '-') {
var parts = property.split('-');
if (parts[2] == 'animation') { keyframeprefix = '-'+parts[1]+'-'; return 1; }
}
return 0;
}
{
var style = getComputedStyle(document.documentElement, null);
if(style.length > 0) {
for(var i=0; i