use utf8;
use strict;
+my $PPT = 32; # tile size in pixels
my $FPS = 1000 / 56; # frames per second on fast
# energy += 8HP/frame ≈ .74 per second
# toss shield += 7HP/frame ≈ .65/s
# zerg regen += 4HP/frame ≈ .37/s
-my $SM = $FPS / 32; # pixels per frame to tiles per second multiplication
+my $SM = $FPS / $PPT; # pixels per frame to tiles per second multiplication
[
'<span title="no known changes as of v1.16.1">version≥1.08</span>',
gas => 0,
build => 20,
suit => 1,
+size => 23 / $PPT,
pop => 1,
cargo => 1,
race => 'protoss',
},
],
sight => 8,
-speed => 5 * $SM,
+speed => 4.92 * $SM,
counter => ['vulture', 'dark templar'],
},
gas => 0,
build => 50,
suit => 3,
+size => 2, # 41x33
race => 'protoss',
attr => {
structure => 1,
gas => 0,
build => 40,
suit => 1,
+size => 23 / $PPT, # x19
pop => 2,
cargo => 2,
race => 'protoss',
gas => 50,
build => 50,
suit => 3,
+size => 32 / $PPT,
pop => 2,
cargo => 4,
race => 'protoss',
},
],
sight => 8,
-speed => 5.25 * $SM,
+speed => 5 * $SM,
upgrade => [
{
name => 'Singularity Charge',
gas => 150,
build => 50,
suit => 1,
+size => 24 / $PPT,
pop => 2,
cargo => 2,
race => 'protoss',
shield => 40,
armor => 0,
sight => 7,
-speed => 3.33 * $SM,
+speed => 3.2 * $SM,
energy => 50,
capacity => 200,
upgrade => [
gas => 100,
build => 50,
suit => 1,
+size => 25 / $PPT, # 24x26
pop => 2,
cargo => 2,
race => 'protoss',
},
],
sight => 7,
-speed => 5 * $SM,
+speed => 4.92 * $SM,
special => [
{
name => 'Cloaked',
build => 20,
base => ['templar', 'templar'],
suit => 3,
+size => 32 / $PPT,
pop => 4,
cargo => 4,
race => 'protoss',
},
],
sight => 8,
-speed => 5 * $SM,
+speed => 4.92 * $SM,
},
{
build => 20,
base => ['dark templar', 'dark templar'],
suit => 3,
+size => 32 / $PPT,
pop => 4,
cargo => 4,
race => 'protoss',
shield => 200,
armor => 1,
sight => 10,
-speed => 5 * $SM,
+speed => 4.92 * $SM,
energy => 50,
capacity => 200,
upgrade => [
gas => 125,
build => 80,
suit => 3,
+size => 36 / $PPT, # x32
pop => 3,
race => 'protoss',
attr => {
gas => 100,
build => 40,
suit => 2,
+size => 36 / $PPT, # x32
pop => 2,
race => 'protoss',
attr => {
gas => 250,
build => 140,
suit => 3,
+size => 64 / $PPT,
pop => 6,
race => 'protoss',
attr => {
min => 25,
build => 20,
suit => 1,
+ size => 16 / $PPT,
pop => 0,
race => 'protoss',
attr => {
range => 0,
},
],
- sight => 0,
+ sight => 6,
range => 0,
+ speed => 13.33 * $SM,
},
],
upgrade => [
gas => 350,
build => 160,
suit => 3,
+size => 44 / $PPT,
pop => 4,
race => 'protoss',
attr => {
gas => 100,
build => 70,
suit => 3,
+size => 32 / $PPT,
pop => 4,
cargo => 4,
race => 'protoss',
},
],
sight => 10,
-speed => 1.77 * $SM,
+speed => 1.78 * $SM,
upgrade => [
{
name => 'Scarab Damage',
gas => 75,
build => 40,
suit => 1,
+size => 32 / $PPT,
pop => 1,
race => 'protoss',
attr => {
gas => 0,
build => 60,
suit => 3,
+size => 40 / $PPT, # x32
pop => 2,
cargo => -8,
race => 'protoss',
shield => 60,
armor => 1,
sight => 8,
-speed => 4.44 * $SM,
+speed => 4.43 * $SM,
transport => 1,
upgrade => [
{
min => 200,
gas => 200,
build => 166,
- speed => (6.67 - 4.44) * $SM,
+ speed => (6.67 - 4.43) * $SM,
}
],
},
gas => 0,
build => 20,
suit => 1,
+size => 23 / $PPT,
pop => 1,
cargo => 1,
race => 'terran',
},
],
sight => 7,
-speed => 5 * $SM,
+speed => 4.92 * $SM,
},
{
gas => 0,
build => 30,
suit => 3,
+size => 2, # 33x49
race => 'terran',
attr => {
structure => 1,
gas => 0,
build => 24,
suit => 1,
+size => 17 / $PPT, # x20
pop => 1,
cargo => 1,
race => 'terran',
gas => 25,
build => 24,
suit => 1,
+size => 23 / $PPT, # x22
pop => 1,
cargo => 1,
race => 'terran',
gas => 75,
build => 50,
suit => 1,
+size => 15 / $PPT, # x22
pop => 1,
cargo => 1,
race => 'terran',
gas => 25,
build => 30,
suit => 1,
+size => 17 / $PPT, # x20
pop => 1,
cargo => 1,
race => 'terran',
gas => 0,
build => 30,
suit => 2,
+size => 32 / $PPT,
pop => 2,
cargo => 2,
race => 'terran',
},
],
sight => 8,
-speed => 6.67 * $SM,
+speed => 6.4 * $SM,
upgrade => [
{
name => 'Ion Thrusters',
min => 100,
gas => 100,
build => 100,
- speed => (10 - 6.67) * $SM,
+ speed => (10 - 6.4) * $SM,
},
],
special => [
},
hp => 20,
suit => 1,
+ size => 15 / $PPT,
armor => 0,
attack => [
{
},
],
sight => 3,
- speed => 9 * $SM, #XXX
+ speed => 16 * $SM,
},
],
},
gas => 100,
build => 50,
suit => 3,
+size => 32 / $PPT,
pop => 2,
cargo => 4,
race => 'terran',
gas => 50,
build => 40,
suit => 3,
+size => 32 / $PPT,
pop => 2,
cargo => 2,
race => 'terran',
},
],
sight => 8,
-speed => 4.7 * $SM,
+speed => 4.57 * $SM,
upgrade => [
{
name => 'Charon Boosters',
gas => 100,
build => 60,
suit => 3,
+size => 38 / $PPT, # x30
pop => 2,
race => 'terran',
attr => {
gas => 300,
build => 133,
suit => 3,
+size => 75 / $PPT, # x59
pop => 6,
race => 'terran',
attr => {
gas => 225,
build => 80,
suit => 3,
+size => 65 / $PPT, # x50
pop => 2,
race => 'terran',
attr => {
gas => 125,
build => 50,
suit => 3,
+size => 49 / $PPT, # x37
pop => 3,
race => 'terran',
attr => {
gas => 100,
build => 50,
suit => 3,
+size => 49 / $PPT, # x37
pop => 2,
cargo => -8,
race => 'terran',
gas => 0,
build => 20,
suit => 1,
+size => 23 / $PPT,
pop => 1,
cargo => 1,
race => 'zerg',
},
],
sight => 7,
-speed => 5 * $SM,
+speed => 4.92 * $SM,
},
{
gas => 0,
build => 40,
suit => 3,
+size => 50 / $PPT,
pop => -9,
cargo => 0,
race => 'zerg',
},
build => 20,
suit => 1,
+size => 16 / $PPT,
pop => 0,
race => 'zerg',
attr => {
gas => 0,
build => 20,
suit => 3,
+size => 2, # 48x48
race => 'zerg',
attr => {
structure => 1,
gas => 0,
build => 20,
suit => 3,
+size => 2, # 48x48
race => 'zerg',
attr => {
structure => 1,
gas => 0,
build => 28, # for 2
suit => 1,
+size => 16 / $PPT,
pop => 0.5,
cargo => 1,
race => 'zerg',
},
],
sight => 5,
-speed => 5.57 * $SM,
+speed => 5.49 * $SM,
upgrade => [
{
name => 'Metabolic Boost',
min => 100,
gas => 100,
build => 80,
- speed => (8.36 - 5.57) * $SM,
+ speed => (8.36 - 5.49) * $SM,
},
{
name => 'Adrenal Glands',
gas => 25,
build => 28,
suit => 2,
+size => 21 / $PPT, # x23
pop => 1,
cargo => 2,
race => 'zerg',
},
],
sight => 6,
-speed => 3.71 * $SM,
+speed => 3.66 * $SM,
upgrade => [
{
name => 'Grooved Spines',
min => 150,
gas => 150,
build => 100,
- speed => (5.57 - 3.71) * $SM,
+ speed => (5.57 - 3.66) * $SM,
},
{
name => 'Lurker Aspect',
base => 'hydralisk',
build => 40,
suit => 2,
+size => 32 / $PPT,
pop => 2,
cargo => 4,
race => 'zerg',
},
],
sight => 8,
-speed => 6 * $SM,
+speed => 5.82 * $SM,
},
{
gas => 100,
build => 50,
suit => 2,
+size => 48 / $PPT,
pop => 2,
race => 'zerg',
attr => {
count => 2,
alt => 'Broodling',
suit => 1,
+ size => 19 / $PPT,
pop => 0,
attr => {
organic => 1,
},
],
sight => 5,
- speed => 6.04 * $SM,
+ speed => 6 * $SM,
},
],
},
gas => 50,
build => 40,
suit => 1,
+size => 17 / $PPT, # x20
pop => 1,
race => 'zerg',
attr => {
},
],
sight => 5,
-speed => 6 * $SM,
+speed => 5.82 * $SM,
},
{
gas => 38,
build => 30, # for 2
suit => 1,
+size => 24 / $PPT,
pop => 0.5,
race => 'zerg',
attr => {
gas => 100,
build => 40,
suit => 1,
+size => 44 / $PPT,
pop => 2,
race => 'zerg',
attr => {
{
alt => 'Cocoon',
suit => 3,
+ size => 32 / $PPT,
attr => {
organic => 1,
flying => 1,
build => 40,
base => 'mutalisk',
suit => 3,
+size => 44 / $PPT,
pop => 2,
race => 'zerg',
attr => {
build => 40,
base => 'mutalisk',
suit => 3,
+size => 44 / $PPT,
pop => 2,
race => 'zerg',
attr => {
gas => 150,
build => 50,
suit => 2,
+size => 27 / $PPT, # x25
pop => 2,
cargo => 2,
race => 'zerg',
gas => 200,
build => 60,
suit => 3,
+size => 38 / $PPT, # x32
pop => 4,
cargo => 4,
race => 'zerg',
},
],
sight => 7,
-speed => 5.4 * $SM,
+speed => 5.12 * $SM,
upgrade => [
{
name => 'Chitinous Plating',
min => 200,
gas => 200,
build => 133,
- speed => (8.1 - 5.4) * $SM,
+ speed => (8.1 - 5.12) * $SM,
},
],
},