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+="
"+type+"
"; items.forEach(function(id){ html+=item_container({skin:G.items[id].skin},{name:id}); }) }); show_modal(html); } function visualize() { if(!window.D) return pull_D(); var 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+="
"+sprite(monster.skin)+"
"+monster.name+" ["+mc[m_def.type]+"]
"; 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); }