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 +=""; rstr +=""; 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 += ""; html += ""; rstr +=html; ++j; } rstr +="
 "+GetImageHTML(IMGSRV+"/mailhero.jpg", "", "")+""+GetImageHTML(IMGSRV+"/mailquest.jpg", "", "")+"
"+GetImageHTML(IMGSRV+"/mailattack.jpg", "", "")+""+GetImageHTML(IMGSRV+"/maildefense.jpg", "", "")+""+GetImageHTML(IMGSRV+"/mailattack.jpg", "", "")+""+GetImageHTML(IMGSRV+"/maildefense.jpg", "", "")+"
"; html += GetSpellImage(spellid,0,25,"",""); //html += GetImageHTML(IMGSRV+"/item/"+spells[index][3]+".png", '', "style='width:25px; height:25px;'"); 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 += "%
\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 += ""; html += ""; html += "
"+GetImageHTML(IMGSRV+"/unit/"+units[index][3]+".png", '', '')+""+tcnt+"
-"+cnt+"
"; html += "
"; rstr +=html; } rstr +="
"; rstr +="
 
\n"; return rstr; } function FightNumbers(data1, data2) { var rstr = ''; rstr +="\n"; rstr +=""; rstr +=""; rstr +=""; for(var i = 0; i< 4; i ++) { rstr +=""; } rstr +=""; 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]"; } else { rstr +=""; } } rstr +=""; for(var i = 0; i< 4; i ++) { rstr +=""; } rstr +="
 "+GetImageHTML(IMGSRV+"/mailhero.jpg", "", "")+""+GetImageHTML(IMGSRV+"/mailquest.jpg", "", "")+"
"+GetImageHTML(IMGSRV+"/mailattack.jpg", "", "")+""+GetImageHTML(IMGSRV+"/maildefense.jpg", "", "")+""+GetImageHTML(IMGSRV+"/mailattack.jpg", "", "")+""+GetImageHTML(IMGSRV+"/maildefense.jpg", "", "")+"
Hrdina"+data1[i]+"
Náhoda+"+delta+"%
Quest"+data2[i]+"
"; 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 +=""; rstr +=""; 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 +=""; rstr +=""; rstr +=""; rstr +=""; 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 +=""; rstr +=""; rstr +="
 ÚtokObrana
Hrdina"+u1+""+o1+"
Náhoda"+pu1+"%"+po1+"%
 "+ur1+""+or1+"
 
Quest"+u2+""+o2+"
Náhoda"+pu1+"%"+po1+"%
 "+ur2+""+or2+"
"; 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 +=""; rstr +=""; } else { rstr +=""; rstr +=""; } 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 += ""; if (f) html += ""; if (flags==0 && f==0 && val >= 0) { html += ""; if (!f) html += ""; html += ""; rstr +=html; ++j; } rstr +="
 "+GetImageHTML(IMGSRV+"/world/spionazhero.jpg", "", "")+"
ŠpionážNáročnosť
 "+GetImageHTML(IMGSRV+"/world/spionazenemy.jpg", "", "")+"
KontrašpionážNáročnosť
"+GetSpellHTML('bstat', spellid, 0, 0, -2, -1, -1000, 0, 0, 0, 1, '', '', -1, -1)+" " } else if ((flags || f) && val < 0) { html += "" } else { html += "" } if (val>0) html += "+"; html += val; html += " 
\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 +=""; rstr +=""; rstr +=""; rstr +=""; var c1 = (rnd>0)?'76FE82':'f20000'; rstr +=""; var numres = spy - contra - diff + rnd; rstr +=""; rstr +=""; rstr +="
Hodnoty špionáže
Špionáž"+spy+"
Kontrašpionáž"+contra+"
Náročnosť"+diff+"
Náhoda"+rnd+"
 
Výsledok"+numres+"
"; 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