You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
280 lines
6.6 KiB
280 lines
6.6 KiB
## -*- coding: utf-8 -*-
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<title>Poogie's Calculator: ${monster} r${rarity}</title>
|
|
<meta charset="utf-8" />
|
|
<!-- Include meta tag to ensure proper rendering and touch zooming -->
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<script src="/js/jquery.min.js"></script>
|
|
|
|
<link rel="stylesheet" href="/css/jquery-ui.min.css" />
|
|
<script src="/js/jquery-ui.min.js"></script>
|
|
|
|
<script src="/js/common.js"></script>
|
|
|
|
<link rel="stylesheet" href="/css/poogie.css">
|
|
|
|
<style>
|
|
body {
|
|
font-size: 1em;
|
|
line-height: 1.3;
|
|
font-family: sans-serif;
|
|
}
|
|
|
|
img.icon { width: 20px; height: 20px; }
|
|
|
|
.sharpness-bar {
|
|
border: 1px #a9a9a9 solid;
|
|
min-width: 82px;
|
|
height: 10px;
|
|
background-color: #a9a9a9;
|
|
float: left;
|
|
clear: both;
|
|
}
|
|
|
|
.sharpness-bar span {
|
|
display: inline-block;
|
|
height: 100%;
|
|
float: left;
|
|
}
|
|
|
|
.sharpness-bar .red {
|
|
background-color: #C00C38 !important;
|
|
}
|
|
|
|
.sharpness-bar .orange {
|
|
background-color: #E85018 !important;
|
|
}
|
|
|
|
.sharpness-bar .yellow {
|
|
background-color: #F0C830 !important;
|
|
}
|
|
|
|
.sharpness-bar .green {
|
|
background-color: #58D000 !important;
|
|
}
|
|
|
|
.sharpness-bar .blue {
|
|
background-color: #3068E8 !important;
|
|
}
|
|
|
|
.sharpness-bar .white {
|
|
background-color: #F0F0F0 !important;
|
|
}
|
|
|
|
.sharpness-bar .purple {
|
|
background-color: #c3c !important;
|
|
}
|
|
|
|
#sharpness_popup {
|
|
position: absolute;
|
|
display: none;
|
|
border: 1px solid;
|
|
background: rgba(204, 204, 204, 0.9);
|
|
z-index: 10;
|
|
}
|
|
|
|
|
|
.sharpness-box {
|
|
float: left;
|
|
width: 10px;
|
|
height: 10px;
|
|
margin: 1px;
|
|
border: 1px solid rgba(0, 0, 0, .2);
|
|
}
|
|
|
|
.Red {
|
|
background-color: #C00C38 !important;
|
|
}
|
|
|
|
.Orange {
|
|
background-color: #E85018 !important;
|
|
}
|
|
|
|
.Yellow {
|
|
background-color: #F0C830 !important;
|
|
}
|
|
|
|
.Green {
|
|
background-color: #58D000 !important;
|
|
}
|
|
|
|
.Blue {
|
|
background-color: #3068E8 !important;
|
|
}
|
|
|
|
.White {
|
|
background-color: #F0F0F0 !important;
|
|
}
|
|
|
|
.Purple {
|
|
background-color: #c3c !important;
|
|
}
|
|
</style>
|
|
|
|
<script type="text/javascript">
|
|
function load_monster_damage(form) {
|
|
var url = "/mhr/damage/" + $("#monster").val()
|
|
+ "/r" + $("#rarity").val()
|
|
+ "/" + $("#weapon_type").val() + ".html";
|
|
window.location.href = url;
|
|
}
|
|
$(document).ready(function(){
|
|
setup_monster_autocomplete("mhr", "#monster");
|
|
$( "#rarity" ).spinner({
|
|
spin: function(event, ui) {
|
|
if (ui.value > 10) {
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
<form action="javascript:void(0);" onsubmit="load_monster_damage(this)">
|
|
<span>
|
|
<input id="monster" name="monster" type="text" size="20"
|
|
value="${monster}" /></td>
|
|
<select id="weapon_type" name="weapon_type">
|
|
% for wname in weapon_types:
|
|
% if wname == weapon_type:
|
|
<option value="${wname}" selected="selected">${wname}</option>
|
|
% else:
|
|
<option value="${wname}">${wname}</option>
|
|
% endif
|
|
% endfor
|
|
</select>
|
|
</span>
|
|
<span>
|
|
<label for="rarity">Rarity:</label>
|
|
<input id="rarity" name="rarity" value="${rarity}"
|
|
style="width: 18px">
|
|
<input type="submit" value="Go" />
|
|
</span>
|
|
</form>
|
|
|
|
<table border="1" cellpadding="2" cellspacing="0">
|
|
<tr>
|
|
<th colspan="6">Weapon</th>
|
|
<th>Avg</th>
|
|
% for part in part_names:
|
|
<th>${part}</th>
|
|
% endfor
|
|
</tr>
|
|
|
|
% for dtype in damage_types:
|
|
<% max_damage = monster_damage.max(dtype) %>
|
|
<% avg_damage = monster_damage.avg(dtype) %>
|
|
<% alt_avg_damage = monster_damage.alt_avg(dtype) %>
|
|
<tr style="border: 0px;">
|
|
<td colspan="6" align="left">
|
|
<img style="height:.8em"
|
|
title="dtype"
|
|
src="/img/${dtype.capitalize()}.png" />
|
|
${dtype}
|
|
</td>
|
|
<td align="right">
|
|
% if avg_damage > 0 or alt_avg_damage > 0:
|
|
${round(avg_damage, 1)}
|
|
% if alt_avg_damage != avg_damage:
|
|
(${round(alt_avg_damage, 1)})
|
|
% endif
|
|
<img style="height:.8em"
|
|
title="dtype"
|
|
src="/img/${dtype.capitalize()}.png" />
|
|
% else:
|
|
|
|
% endif
|
|
</td>
|
|
% for part_name, part in monster_damage.items():
|
|
<% bgcolor = "lightyellow" if (part[dtype] > 0 and part[dtype] == max_damage) else "white" %>
|
|
% if part.state_diff(dtype) != 0:
|
|
<td align="right" style="background: ${bgcolor}">
|
|
% if part[dtype] > 0 or part.get_alt_state(dtype) > 0:
|
|
${part[dtype]} (${part.get_alt_state(dtype)})
|
|
<img style="height:.8em"
|
|
title="dtype"
|
|
src="/img/${dtype.capitalize()}.png" />
|
|
% else:
|
|
|
|
% endif
|
|
</td>
|
|
% else:
|
|
<td align="right" style="background: ${bgcolor}">
|
|
% if part[dtype] > 0:
|
|
${part[dtype]}
|
|
<img style="height:.8em"
|
|
title="dtype"
|
|
src="/img/${dtype.capitalize()}.png" />
|
|
% else:
|
|
|
|
%endif
|
|
</td>
|
|
% endif
|
|
% endfor
|
|
</tr>
|
|
% endfor
|
|
|
|
% for weapon in weapon_names:
|
|
<% damage = weapon_damage_map[weapon] %>
|
|
<% affinity = str(int(damage.affinity)) + "%" if damage.affinity else " " %>
|
|
<% avg = damage.uniform(0.0) %>
|
|
<% avg_break = damage.uniform(1.0) %>
|
|
<tr style="border: 0px;">
|
|
<td align="left">
|
|
<a href="/mhr/weaponplanner.html?weapon=${weapon | u}">${weapon}</a>
|
|
</td>
|
|
<td align="right">${int(damage.attack)}</td>
|
|
<td align="right">${affinity}</td>
|
|
<td align="center" title="${damage.weapon.sharpness}">
|
|
<div class="sharpness-box ${damage.sharpness_name}" />
|
|
</td>
|
|
% if damage.eattack > 0:
|
|
<td align="right">
|
|
${int(damage.eattack)}
|
|
<img style="height:.8em"
|
|
title="${damage.etype}"
|
|
src="/img/${damage.etype}.png" />
|
|
</td>
|
|
% else:
|
|
<td> </td>
|
|
% endif
|
|
% if damage.eattack2 > 0:
|
|
<td align="right">
|
|
${int(damage.eattack2)}
|
|
<img style="height:.8em"
|
|
title="${damage.etype2}"
|
|
src="/img/${damage.etype2}.png" />
|
|
</td>
|
|
% else:
|
|
<td> </td>
|
|
% endif
|
|
|
|
<td align="right">
|
|
${round(avg, 1)}
|
|
% if avg != avg_break:
|
|
(${round(avg_break, 1)})
|
|
% endif
|
|
</td>
|
|
% for part in part_names:
|
|
<% bgcolor = "yellow" if damage[part].average() == part_max_damage[part] else "white" %>
|
|
<td align="right" style="background: ${bgcolor};">
|
|
${int(damage[part].total)}
|
|
% if damage[part].total_break != damage[part].total:
|
|
(${int(damage[part].total_break)})
|
|
% endif
|
|
</td>
|
|
% endfor
|
|
</tr>
|
|
% endfor
|
|
</table>
|
|
<div id="sharpness_popup"></div>
|
|
</body>
|