## -*- coding: utf-8 -*- Poogie's Calculator: ${monster} v${village_stars} g${guild_stars}

Breaks: ${", ".join(monster_breaks)}

% if monster_damage.alt_state != "Default":

Alternate state: ${monster_damage.alt_state}

% endif % for part in part_names: % if part in monster_breaks: % else: % endif % endfor % 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) %> % 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: % else: % endif % endfor % 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) %> % if damage.eattack > 0: % else: % endif % if damage.eattack2 > 0: % else: % endif % for part in part_names: <% bgcolor = "yellow" if damage[part].average() == part_max_damage[part] else "white" %> % endfor % endfor
Weapon Avg${part}${part}
${dtype} % 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 % else:   % endif % if part[dtype] > 0 or part.get_alt_state(dtype) > 0: ${part[dtype]} (${part.get_alt_state(dtype)}) % else:   % endif % if part[dtype] > 0: ${part[dtype]} % else:   %endif
${weapon} ${int(damage.attack)} ${affinity}
${int(damage.eattack)}   ${int(damage.eattack2)}   ${round(avg, 1)} % if avg != avg_break: (${round(avg_break, 1)}) % endif ${int(damage[part].total)} % if damage[part].total_break != damage[part].total: (${int(damage[part].total_break)}) % endif