},
sight => 7,
speed => 15,
-cloak => 1,
+special => [
+ {
+ name => 'Cloaked',
+ abbr => 'cl',
+ desc => 'cloaked at all times',
+ duration => -1,
+ },
+],
},
{
desc => 'permanently gives you control over any unit',
range => 8,
cost => 150,
- duration => -1,
+ duration => 0,
},
{
name => 'Maelstrom',
speed => 13 - 9,
},
],
-cloak => 1,
+special => [
+ {
+ name => 'Cloaked',
+ abbr => 'cl',
+ desc => 'cloaked at all times',
+ duration => -1,
+ },
+],
},
{
desc => 'reduces the sight of target unit to 1',
range => 9,
cost => 75,
- duration => -1,
+ duration => 0,
},
],
},
range => 12,
},
speed => 0,
- duration => -1,
},
],
},
.unit-magic {
padding-left: 0.5em;
}
+ .magic-perma {
+ text-decoration: underline;
+ }
.units .val {
text-align: right;
my ($row) = @_;
my $specials = $row->{special} or return '';
return join ' ', map {
- sprintf '<span title="%s">%s</span>',
+ sprintf '<span%s title="%s">%s</span>',
+ $_->{duration} < 0 && ' class="magic-perma"',
join('',
$_->{name},
$_->{desc} ? ": $_->{desc}" : '',
<dt>speed
<dd>relative speed of movement (when in full motion, startup speed ignored)
<dt>specials
- <dd>special abilities
+ <dd>special abilities are usually casted manually, but some are <span class="magic-perma">always active</span>
<dd>parentheses () indicate that it needs to be researched first
<dd>hover for description
<dd>range is maximum range required to activate