- my $tagbase = '<td class="val hurt';
- if (ref $attack and $attack->{type}) {
- if ($attack->{type} eq 'explosive') {
- $tagbase .= ' unit-l';
- }
- elsif ($attack->{type} eq 'implosive') {
- $tagbase .= ' unit-s';
+ my $upattack = $row->{upgraded}->{attack}->[$area];
+ my $damage = $attack->{damage};
+ my $maxdamage = $upattack->{damage} // $damage;
+ $damage = $damage->[0] if ref $damage;
+ $maxdamage = $maxdamage->[-1] if ref $maxdamage;
+
+ $out .= "<small>$attack->{count}× </small>" if $attack->{count} > 1;
+ $out .= '<span class="unit-l" title="explosive">*</span>'
+ if $attack->{type} eq 'explosive';
+ $out .= '<span class="unit-s" title="implosive">~</span>'
+ if $attack->{type} eq 'implosive';
+ $out .= showrange($damage, $maxdamage);
+ $out .= sprintf('<span class="unit-splash" title="%s">%s</span>',
+ $attack->{splash} eq 'line' ? ('linear', '×') : ('splash', '+')
+ ) if $attack->{splash};
+
+ $out .= '<td class="val hurt hurtrel">';
+ if ($attack->{cooldown}) {
+ if (my $type = $attack->{type}) {
+ if ($type eq 'explosive') {
+ $damage /= 2;
+ }
+ elsif ($type eq 'implosive') {
+ $damage /= 4;
+ }