Convert ranged attack data in entity templates
This was SVN commit r7346.
This commit is contained in:
parent
a8d810b4b3
commit
36e90e71f2
@ -3,4 +3,14 @@
|
||||
<Identity>
|
||||
<GenericName>Ranged Cavalry</GenericName>
|
||||
</Identity>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>10.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>16.0</Range>
|
||||
<MinRange>10.0</MinRange>
|
||||
<ProjectileSpeed>25.0</ProjectileSpeed>
|
||||
<PrepareTime>900</PrepareTime>
|
||||
<RepeatTime>1500</RepeatTime>
|
||||
</Attack>
|
||||
</Entity>
|
||||
|
@ -21,4 +21,14 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>8.0</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>40.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>56.0</Range>
|
||||
<MinRange>20.0</MinRange>
|
||||
<ProjectileSpeed>40.0</ProjectileSpeed>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Attack>
|
||||
</Entity>
|
||||
|
@ -21,4 +21,14 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>8.5</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>30.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>40</Range>
|
||||
<MinRange>16.0</MinRange>
|
||||
<ProjectileSpeed>30.0</ProjectileSpeed>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Attack>
|
||||
</Entity>
|
||||
|
@ -21,4 +21,13 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>8.0</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>50.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>56.0</Range>
|
||||
<ProjectileSpeed>25.0</ProjectileSpeed>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Attack>
|
||||
</Entity>
|
||||
|
@ -4,4 +4,14 @@
|
||||
<GenericName>Ranged Infantry</GenericName>
|
||||
<IconCell>43</IconCell>
|
||||
</Identity>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>1.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>1.0</Range>
|
||||
<MinRange>1.0</MinRange>
|
||||
<ProjectileSpeed>28.0</ProjectileSpeed>
|
||||
<PrepareTime>900</PrepareTime>
|
||||
<RepeatTime>1500</RepeatTime>
|
||||
</Attack>
|
||||
</Entity>
|
||||
|
@ -4,4 +4,14 @@
|
||||
<GenericName>Infantry Archer</GenericName>
|
||||
<IconCell>9</IconCell>
|
||||
</Identity>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>40.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>44.0</Range>
|
||||
<MinRange>20.0</MinRange>
|
||||
<ProjectileSpeed>40.0</ProjectileSpeed>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Attack>
|
||||
</Entity>
|
||||
|
@ -4,4 +4,14 @@
|
||||
<GenericName>Infantry Javelinist</GenericName>
|
||||
<IconCell>21</IconCell>
|
||||
</Identity>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>45.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>32</Range>
|
||||
<MinRange>8.0</MinRange>
|
||||
<ProjectileSpeed>30.0</ProjectileSpeed>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Attack>
|
||||
</Entity>
|
||||
|
@ -21,4 +21,14 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>7.5</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>20.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>28.0</Range>
|
||||
<MinRange>16.0</MinRange>
|
||||
<ProjectileSpeed>50.0</ProjectileSpeed>
|
||||
<PrepareTime>900</PrepareTime>
|
||||
<RepeatTime>1500</RepeatTime>
|
||||
</Attack>
|
||||
</Entity>
|
||||
|
@ -21,4 +21,13 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>5.75</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>35.0</Pierce>
|
||||
<Crush>30.0</Crush>
|
||||
<Range>54</Range>
|
||||
<ProjectileSpeed>30.0</ProjectileSpeed>
|
||||
<PrepareTime>900</PrepareTime>
|
||||
<RepeatTime>1500</RepeatTime>
|
||||
</Attack>
|
||||
</Entity>
|
||||
|
@ -21,4 +21,13 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>4.75</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>35.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>40.0</Crush>
|
||||
<Range>72</Range>
|
||||
<ProjectileSpeed>20.0</ProjectileSpeed>
|
||||
<PrepareTime>900</PrepareTime>
|
||||
<RepeatTime>1500</RepeatTime>
|
||||
</Attack>
|
||||
</Entity>
|
||||
|
@ -19,6 +19,16 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>7.0</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>55.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>28</Range>
|
||||
<MinRange>8.0</MinRange>
|
||||
<ProjectileSpeed>25.0</ProjectileSpeed>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Attack>
|
||||
<Footprint>
|
||||
<Circle radius="0.5"/>
|
||||
<Height>2.5</Height>
|
||||
|
@ -11,6 +11,12 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>11.2</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>32.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>40.0</Range>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/celts/cavalry_javelinist_a.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -11,6 +11,9 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>15.0</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Pierce>32.0</Pierce>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/celts/cavalry_javelinist_b.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -11,6 +11,12 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>11.3</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>34.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>40.0</Range>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/celts/cavalry_javelinist_e.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -24,6 +24,16 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>14.0</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>50.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>30</Range>
|
||||
<MinRange>0.0</MinRange>
|
||||
<ProjectileSpeed>30.0</ProjectileSpeed>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/celts/boudicca_chariot.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -14,6 +14,16 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>9.2</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>47.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>32</Range>
|
||||
<MinRange>16.0</MinRange>
|
||||
<ProjectileSpeed>32.0</ProjectileSpeed>
|
||||
<PrepareTime>900</PrepareTime>
|
||||
<RepeatTime>1500</RepeatTime>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/celts/infantry_javelinist_a.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -14,6 +14,16 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>9.3</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>49.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>34</Range>
|
||||
<MinRange>16.0</MinRange>
|
||||
<ProjectileSpeed>34.0</ProjectileSpeed>
|
||||
<PrepareTime>900</PrepareTime>
|
||||
<RepeatTime>1500</RepeatTime>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/celts/infantry_javelinist_e.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -24,6 +24,16 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>9.0</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>45.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>30</Range>
|
||||
<MinRange>12.0</MinRange>
|
||||
<ProjectileSpeed>30.0</ProjectileSpeed>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/celts/super_unit_4.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -22,6 +22,13 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>9.0</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>60.0</Pierce>
|
||||
<Crush>5.0</Crush>
|
||||
<Range>28.0</Range>
|
||||
<MinRange>8.0</MinRange>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/hellenes/xenophon.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -12,6 +12,9 @@
|
||||
<Pierce>1.0</Pierce>
|
||||
<Crush>3.0</Crush>
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Pierce>40.0</Pierce>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/hellenes/infantry_archer_a.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -22,6 +22,11 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>6.8</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Pierce>35.0</Pierce>
|
||||
<Range>36.0</Range>
|
||||
<MinRange>12.0</MinRange>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/hellenes/infantry_archer_b.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -15,6 +15,9 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>6.7</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Pierce>45.0</Pierce>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/hellenes/infantry_archer_e.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -18,6 +18,9 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>7.2</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Pierce>50.0</Pierce>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/hellenes/infantry_javelinist_a.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -18,6 +18,9 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>6.7</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Range>36.0</Range>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/hellenes/infantry_javelinist_b.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -10,6 +10,9 @@
|
||||
<Max>120</Max>
|
||||
<RegenRate>0.4</RegenRate>
|
||||
</Health>
|
||||
<Attack>
|
||||
<Pierce>55.0</Pierce>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/hellenes/infantry_javelinist_e.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -22,6 +22,13 @@
|
||||
<UnitMotion>
|
||||
<WalkSpeed>9.0</WalkSpeed>
|
||||
</UnitMotion>
|
||||
<Attack>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>55.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>28.0</Range>
|
||||
<MinRange>10.0</MinRange>
|
||||
</Attack>
|
||||
<VisualActor>
|
||||
<Actor>units/hellenes/super_unit_2.xml</Actor>
|
||||
</VisualActor>
|
||||
|
@ -148,19 +148,25 @@ sub convert {
|
||||
$out .= qq{$i</UnitMotion>\n};
|
||||
}
|
||||
|
||||
if ($data->{Actions}[0]{Attack}[0]{Melee}) {
|
||||
die if $data->{Actions}[0]{Attack}[0]{Melee} and $data->{Actions}[0]{Attack}[0]{Ranged}; # only allow one at once
|
||||
my $attack = $data->{Actions}[0]{Attack}[0]{Melee} || $data->{Actions}[0]{Attack}[0]{Ranged};
|
||||
if ($attack) {
|
||||
$out .= qq{$i<Attack>\n};
|
||||
for my $n (qw(Hack Pierce Crush Range)) {
|
||||
$out .= qq{$i$i<$n>$data->{Actions}[0]{Attack}[0]{Melee}[0]{$n}[0]</$n>\n} if $data->{Actions}[0]{Attack}[0]{Melee}[0]{$n};
|
||||
for my $n (qw(Hack Pierce Crush Range MinRange ProjectileSpeed)) {
|
||||
$out .= qq{$i$i<$n>$attack->[0]{$n}[0]</$n>\n} if $attack->[0]{$n};
|
||||
}
|
||||
if ($data->{Actions}[0]{Attack}[0]{Melee}[0]{Speed}) {
|
||||
my $s = $data->{Actions}[0]{Attack}[0]{Melee}[0]{Speed}[0];
|
||||
if ($attack->[0]{Speed}) {
|
||||
my $s = $attack->[0]{Speed}[0];
|
||||
# TODO: are these values sane?
|
||||
if ($s eq '1000') {
|
||||
$out .= qq{$i$i<PrepareTime>600</PrepareTime>\n};
|
||||
$out .= qq{$i$i<RepeatTime>1000</RepeatTime>\n};
|
||||
} elsif ($s eq '1500') {
|
||||
} elsif ($s eq '1500' or $s eq '1520' or $s eq '1510') {
|
||||
$out .= qq{$i$i<PrepareTime>900</PrepareTime>\n};
|
||||
$out .= qq{$i$i<RepeatTime>1500</RepeatTime>\n};
|
||||
} elsif ($s eq '2000') {
|
||||
$out .= qq{$i$i<PrepareTime>1200</PrepareTime>\n};
|
||||
$out .= qq{$i$i<RepeatTime>2000</RepeatTime>\n};
|
||||
} else {
|
||||
die $s;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user