function drop_to_html(def,mult,color)
{
var html="";
if(def[1]=="open")
{
D.drops[def[2]].forEach(function(d){
html+=drop_to_html(d,mult*def[0],color);
});
return html;
}
html+="
";
var skin="",prob=parseInt(1/(def[0]*mult));
if(G.items[def[1]]) skin=G.items[def[1]].skin;
else if(def[1]=="shells") skin="shells";
else if(def[1]=="gold") skin="gold";
html+=item_container({skin:skin});
html+="
1 / "+to_pretty_num(prob)+"
";
html+="
";
return html;
}
function item_analysis()
{
var html="";
["weapon","shield","offhand","helmet"].forEach(function(type){
var items=[];
for(var id in G.items)
{
if(G.items[id].type==type)
items.push(id);
}
html+="";
object_sort(G.maps).forEach(function(io){
var mname=io[0],map=G.maps[mname],pc={},mc={},m={},first=false,mx=false;
if(!(D.drops.maps[mname] || map.monsters && map.monsters.length) || G.maps[mname].ignore) return;
html+="
"+map.name+"
";
for(var i=0;i<(D.drops.maps[mname]||[]).length;i++)
{
html+=drop_to_html(D.drops.maps[mname][i],1,"#858B8E"); mx=true;
}
if(mx) html+="
";
html+="
";
for(var i=0;i<(map.monsters||[]).length;i++)
{
var m_def=map.monsters[i],monster=G.monsters[m_def.type];
pc[m_def.type]=(pc[m_def.type]||0)+1;
mc[m_def.type]=(mc[m_def.type]||0)+m_def.count;
}
for(var i=0;i<(map.monsters||[]).length;i++)
{
var m_def=map.monsters[i],monster=G.monsters[m_def.type],drop=false;
if(m[m_def.type]) continue;
if(!monster) alert("no "+JSON.stringify(m_def));
html+="
";
html+="
";
for(var j=0;j<(D.drops.monsters[m_def.type]||[]).length;j++)
{
html+=drop_to_html(D.drops.monsters[m_def.type][j],1,"#858B8E");
drop=true;
}
if(!drop) html+="
No Drop
";
else html+="
";
html+="
";
m[m_def.type]=true;
}
if(!first) html+="
"; first=true;
});
html+="
"
show_modal(html);
}