Fix errors and inconsistencies in entity template XML files
This was SVN commit r7532.
This commit is contained in:
parent
c0a0e0bdbd
commit
afe29fdadf
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
|
||||
<Entity Parent="template_structure_civic_civil_centre">
|
||||
<Actor>structures/romans/civic_centre.xml</Actor>
|
||||
<Traits>
|
||||
<Id>
|
||||
<Specific>Municipium</Specific>
|
||||
@ -20,4 +19,5 @@
|
||||
</List>
|
||||
</Create>
|
||||
</Actions>
|
||||
</Entity>
|
||||
<Actor>structures/romans/civic_centre.xml</Actor>
|
||||
</Entity>
|
||||
|
@ -19,11 +19,7 @@
|
||||
|
||||
</Promotion>
|
||||
|
||||
<Actions>
|
||||
|
||||
</Actions>
|
||||
|
||||
</Traits>
|
||||
|
||||
<Actor>units/persians/cavalry_spearman_b.xml</Actor>
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -19,11 +19,7 @@
|
||||
|
||||
</Promotion>
|
||||
|
||||
<Actions>
|
||||
|
||||
</Actions>
|
||||
|
||||
</Traits>
|
||||
|
||||
<Actor>units/persians/cavalry_swordsman_b.xml</Actor>
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -15,14 +15,14 @@
|
||||
|
||||
</Id>
|
||||
|
||||
</Traits>
|
||||
|
||||
<Footprint>
|
||||
<Width>6.0</Width>
|
||||
<Depth>50.0</Depth>
|
||||
<Height>8.0</Height>
|
||||
</Footprint>
|
||||
|
||||
</Traits>
|
||||
|
||||
<Actions>
|
||||
|
||||
<Move>
|
||||
|
@ -2,10 +2,6 @@
|
||||
|
||||
<Entity Parent="rome_cavalry_spearman_a">
|
||||
|
||||
<Actor>
|
||||
|
||||
units/romans/cavalry_spearman_e.xml
|
||||
|
||||
</Actor>
|
||||
<Actor>units/romans/cavalry_spearman_e.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
<Entity Parent="rome_infantry_javelinist_a">
|
||||
|
||||
<Actor>units/romans/infantry_javelinist_e.xml</Actor>
|
||||
|
||||
<Traits>
|
||||
<Health>
|
||||
<Max>105</Max>
|
||||
@ -40,4 +38,6 @@
|
||||
</Move>
|
||||
</Actions>
|
||||
|
||||
</Entity>
|
||||
<Actor>units/romans/infantry_javelinist_e.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
<Entity Parent="template_unit_mechanical_siege">
|
||||
|
||||
<Actor>units/romans/siege_scorpio.xml</Actor>
|
||||
|
||||
<Traits>
|
||||
|
||||
<Id>
|
||||
@ -38,4 +36,6 @@
|
||||
</Run>
|
||||
</Move>
|
||||
</Actions>
|
||||
</Entity>
|
||||
<Actor>units/romans/siege_scorpio.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
|
@ -15,14 +15,14 @@
|
||||
|
||||
</Id>
|
||||
|
||||
</Traits>
|
||||
|
||||
<Footprint>
|
||||
<Width>6.0</Width>
|
||||
<Depth>50.0</Depth>
|
||||
<Height>8.0</Height>
|
||||
</Footprint>
|
||||
|
||||
</Traits>
|
||||
|
||||
<Actions>
|
||||
|
||||
<Move>
|
||||
|
@ -10,4 +10,8 @@
|
||||
<VisualActor>
|
||||
<Actor>structures/persians/trireme.xml</Actor>
|
||||
</VisualActor>
|
||||
<Footprint>
|
||||
<Square width="6.0" depth="50.0"/>
|
||||
<Height>8.0</Height>
|
||||
</Footprint>
|
||||
</Entity>
|
||||
|
@ -1,10 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="units/rome_cavalry_spearman_a">
|
||||
<VisualActor>
|
||||
<Actor>
|
||||
|
||||
units/romans/cavalry_spearman_e.xml
|
||||
|
||||
</Actor>
|
||||
<Actor>units/romans/cavalry_spearman_e.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
||||
|
@ -10,4 +10,8 @@
|
||||
<VisualActor>
|
||||
<Actor>structures/romans/quinquereme.xml</Actor>
|
||||
</VisualActor>
|
||||
<Footprint>
|
||||
<Square width="6.0" depth="50.0"/>
|
||||
<Height>8.0</Height>
|
||||
</Footprint>
|
||||
</Entity>
|
||||
|
@ -20,8 +20,6 @@
|
||||
|
||||
</Traits>
|
||||
|
||||
<Actor>structures/celts/barracks.xml</Actor>
|
||||
|
||||
<Actions>
|
||||
<Create>
|
||||
<List>
|
||||
@ -36,4 +34,6 @@
|
||||
</Create>
|
||||
</Actions>
|
||||
|
||||
</Entity>
|
||||
<Actor>structures/celts/barracks.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
|
@ -17,8 +17,6 @@
|
||||
|
||||
</Traits>
|
||||
|
||||
<Actor>structures/celts/civil_centre.xml</Actor>
|
||||
|
||||
<Actions>
|
||||
<Create>
|
||||
<List>
|
||||
@ -31,4 +29,6 @@
|
||||
</Create>
|
||||
</Actions>
|
||||
|
||||
</Entity>
|
||||
<Actor>structures/celts/civil_centre.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
|
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
|
||||
<Entity Parent="template_structure_military_fortress">
|
||||
<Actor>structures/celts/fortress_gallic.xml</Actor>
|
||||
<Traits>
|
||||
<Id>
|
||||
<Specific>Gallic Dun</Specific>
|
||||
@ -28,4 +27,5 @@
|
||||
</List>
|
||||
</Create>
|
||||
</Actions>
|
||||
</Entity>
|
||||
<Actor>structures/celts/fortress_gallic.xml</Actor>
|
||||
</Entity>
|
||||
|
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
|
||||
<Entity Parent="template_structure_military_barracks">
|
||||
<Actor>structures/hellenes/barracks.xml</Actor>
|
||||
<Traits>
|
||||
<Id>
|
||||
<Specific>Strategion</Specific>
|
||||
@ -33,4 +32,5 @@
|
||||
</Create>
|
||||
</Actions>
|
||||
|
||||
</Entity>
|
||||
<Actor>structures/hellenes/barracks.xml</Actor>
|
||||
</Entity>
|
||||
|
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
|
||||
<Entity Parent="template_structure_military_dock">
|
||||
<Actor>structures/hellenes/dock.xml</Actor>
|
||||
<Traits>
|
||||
<Id>
|
||||
<Specific>Limenos</Specific>
|
||||
@ -30,4 +29,5 @@
|
||||
</List>
|
||||
</Create>
|
||||
</Actions>
|
||||
</Entity>
|
||||
<Actor>structures/hellenes/dock.xml</Actor>
|
||||
</Entity>
|
||||
|
@ -15,8 +15,6 @@
|
||||
</Health>
|
||||
</Traits>
|
||||
|
||||
<Actor>structures/hellenes/mill.xml</Actor>
|
||||
|
||||
<Actions>
|
||||
<Create>
|
||||
<List>
|
||||
@ -30,4 +28,6 @@
|
||||
</Create>
|
||||
</Actions>
|
||||
|
||||
</Entity>
|
||||
<Actor>structures/hellenes/mill.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
|
@ -10,12 +10,12 @@
|
||||
<Generic>Corpse</Generic>
|
||||
</Id>
|
||||
|
||||
<Footprint>
|
||||
<Radius>0.0</Radius>
|
||||
<Height>1.0</Height>
|
||||
</Footprint>
|
||||
</Traits>
|
||||
|
||||
<Footprint>
|
||||
<Radius>0.0</Radius>
|
||||
<Height>1.0</Height>
|
||||
</Footprint>
|
||||
|
||||
</Entity>
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
<Loot>
|
||||
<Xp>1000</Xp>
|
||||
<Food>10</Food>
|
||||
<wood>10</wood>
|
||||
<Wood>10</Wood>
|
||||
<Stone>10</Stone>
|
||||
<Metal>100</Metal>
|
||||
</Loot>
|
||||
@ -75,4 +75,4 @@
|
||||
<Death>audio/actor/human/death/death.xml</Death>
|
||||
</SoundGroups>
|
||||
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -41,7 +41,7 @@
|
||||
<Loot>
|
||||
<Xp>1000</Xp>
|
||||
<Food>15</Food>
|
||||
<wood>10</wood>
|
||||
<Wood>10</Wood>
|
||||
<Stone>10</Stone>
|
||||
<Metal>100</Metal>
|
||||
</Loot>
|
||||
@ -81,4 +81,4 @@
|
||||
<Death>audio/actor/fauna/death/death_horse.xml</Death>
|
||||
</SoundGroups>
|
||||
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -34,7 +34,7 @@
|
||||
<Loot>
|
||||
<Xp>1000</Xp>
|
||||
<Food>10</Food>
|
||||
<wood>10</wood>
|
||||
<Wood>10</Wood>
|
||||
<Stone>10</Stone>
|
||||
<Metal>100</Metal>
|
||||
</Loot>
|
||||
@ -75,4 +75,4 @@
|
||||
<Death>audio/actor/human/death/death.xml</Death>
|
||||
</SoundGroups>
|
||||
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -29,7 +29,7 @@
|
||||
<Loot>
|
||||
<Xp>1000</Xp>
|
||||
<Food>10</Food>
|
||||
<wood>10</wood>
|
||||
<Wood>10</Wood>
|
||||
<Stone>10</Stone>
|
||||
<Metal>100</Metal>
|
||||
</Loot>
|
||||
@ -58,4 +58,4 @@
|
||||
</Move>
|
||||
</Actions>
|
||||
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -12,7 +12,7 @@
|
||||
<Loot>
|
||||
<Xp>150</Xp>
|
||||
<Food>5</Food>
|
||||
<wood>5</wood>
|
||||
<Wood>5</Wood>
|
||||
<Stone>5</Stone>
|
||||
<Metal>10</Metal>
|
||||
</Loot>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<Loot>
|
||||
<Xp>10</Xp>
|
||||
<Food>1</Food>
|
||||
<wood>1</wood>
|
||||
<Wood>1</Wood>
|
||||
<Stone>1</Stone>
|
||||
<Metal>1</Metal>
|
||||
</Loot>
|
||||
@ -33,4 +33,4 @@
|
||||
|
||||
</Traits>
|
||||
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -41,13 +41,13 @@
|
||||
<Pierce>6.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>3.6</Range>
|
||||
</Melee>
|
||||
<Charge>
|
||||
<Hack>46.0</Hack>
|
||||
<Pierce>16.0</Pierce>
|
||||
<Range>3.6</Range>
|
||||
</Charge>
|
||||
</Melee>
|
||||
</Attack>
|
||||
</Actions>
|
||||
<Actor>units/celts/cavalry_spearman_a.xml</Actor>
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -43,12 +43,12 @@
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>0.5</Range>
|
||||
</Melee>
|
||||
<Charge>
|
||||
<Hack>40.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Range>0.5</Range>
|
||||
</Charge>
|
||||
</Melee>
|
||||
</Attack>
|
||||
<Move>
|
||||
<Speed>10.0</Speed>
|
||||
@ -58,4 +58,4 @@
|
||||
</Move>
|
||||
</Actions>
|
||||
<Actor>units/celts/cavalry_spearman_b.xml</Actor>
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -38,13 +38,13 @@
|
||||
<Pierce>7.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Range>3.6</Range>
|
||||
</Melee>
|
||||
<Charge>
|
||||
<Hack>47.0</Hack>
|
||||
<Pierce>17.0</Pierce>
|
||||
<Range>3.6</Range>
|
||||
</Charge>
|
||||
</Melee>
|
||||
</Attack>
|
||||
</Actions>
|
||||
<Actor>units/celts/cavalry_spearman_e.xml</Actor>
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -25,11 +25,11 @@
|
||||
<Hack>18.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Melee>
|
||||
<Charge>
|
||||
<Hack>54.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
</Charge>
|
||||
</Melee>
|
||||
</Attack>
|
||||
<Move>
|
||||
<Speed>14.0</Speed>
|
||||
@ -39,4 +39,4 @@
|
||||
</Move>
|
||||
</Actions>
|
||||
<Actor>units/celts/cavalry_swordsman_b.xml</Actor>
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -44,7 +44,7 @@
|
||||
</List>
|
||||
</Create>
|
||||
<Attack>
|
||||
/* Charge power increased by 2 because of celts special speed */
|
||||
<!-- Charge power increased by 2 because of celts special speed -->
|
||||
<Charge>
|
||||
<Hack>32.0</Hack>
|
||||
<Pierce>12.0</Pierce>
|
||||
@ -58,4 +58,4 @@
|
||||
</Move>
|
||||
</Actions>
|
||||
<Actor>units/celts/infantry_spearman_b.xml</Actor>
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
<Entity Parent="hele_cavalry_swordsman_b">
|
||||
<Traits>
|
||||
<id>
|
||||
<Id>
|
||||
<Icon_Cell>19</Icon_Cell>
|
||||
</id>
|
||||
</Id>
|
||||
<Promotion>
|
||||
<Entity>hele_cavalry_swordsman_e</Entity>
|
||||
</Promotion>
|
||||
@ -46,4 +46,4 @@
|
||||
</Actions>
|
||||
<Actor>units/hellenes/cavalry_swordsman_a.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
<Entity Parent="hele_cavalry_swordsman_a">
|
||||
<Traits>
|
||||
<id>
|
||||
<Id>
|
||||
<Icon_Cell>20</Icon_Cell>
|
||||
</id>
|
||||
</Id>
|
||||
<Health>
|
||||
<Max>160</Max>
|
||||
<RegenRate>0.4</RegenRate>
|
||||
@ -42,4 +42,4 @@
|
||||
</Move>
|
||||
</Actions>
|
||||
<Actor>units/hellenes/cavalry_swordsman_e.xml</Actor>
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
<Entity Parent="hele_infantry_archer_b">
|
||||
<Traits>
|
||||
<id>
|
||||
<Id>
|
||||
<Icon_Cell>10</Icon_Cell>
|
||||
</id>
|
||||
</Id>
|
||||
<Promotion>
|
||||
<Entity>hele_infantry_archer_e</Entity>
|
||||
</Promotion>
|
||||
@ -37,4 +37,4 @@
|
||||
|
||||
<Actor>units/hellenes/infantry_archer_a.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
<Entity Parent="hele_infantry_archer_a">
|
||||
<Traits>
|
||||
<id>
|
||||
<Id>
|
||||
<Icon_Cell>11</Icon_Cell>
|
||||
</id>
|
||||
</Id>
|
||||
<Health>
|
||||
<Max>105</Max>
|
||||
<RegenRate>0.4</RegenRate>
|
||||
@ -40,4 +40,4 @@
|
||||
|
||||
<Actor>units/hellenes/infantry_archer_e.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
</Entity>
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
<Entity Parent="template_unit_mechanical_siege_onager">
|
||||
|
||||
<Actor>units/hellenes/siege_rock.xml</Actor>
|
||||
|
||||
<Traits>
|
||||
|
||||
<Id>
|
||||
@ -38,4 +36,6 @@
|
||||
</Run>
|
||||
</Move>
|
||||
</Actions>
|
||||
</Entity>
|
||||
<Actor>units/hellenes/siege_rock.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
<Entity Parent="template_unit_mechanical_siege">
|
||||
|
||||
<Actor>units/hellenes/siege_spear.xml</Actor>
|
||||
|
||||
<Traits>
|
||||
|
||||
<Id>
|
||||
@ -38,4 +36,6 @@
|
||||
</Run>
|
||||
</Move>
|
||||
</Actions>
|
||||
</Entity>
|
||||
<Actor>units/hellenes/siege_spear.xml</Actor>
|
||||
|
||||
</Entity>
|
||||
|
@ -15,14 +15,14 @@
|
||||
|
||||
</Id>
|
||||
|
||||
</Traits>
|
||||
|
||||
<Footprint>
|
||||
<Width>6.0</Width>
|
||||
<Depth>50.0</Depth>
|
||||
<Height>8.0</Height>
|
||||
</Footprint>
|
||||
|
||||
</Traits>
|
||||
|
||||
<Actions>
|
||||
|
||||
<Move>
|
||||
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity>
|
||||
<Identity>
|
||||
<GenericName>Corpse</GenericName>
|
||||
</Identity>
|
||||
</Entity>
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="units/hele_cavalry_swordsman_b">
|
||||
<Identity>
|
||||
<IconCell>19</IconCell>
|
||||
</Identity>
|
||||
<ResourceGatherer>
|
||||
<BaseSpeed>1.5</BaseSpeed>
|
||||
</ResourceGatherer>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="units/hele_cavalry_swordsman_a">
|
||||
<Identity>
|
||||
<IconCell>20</IconCell>
|
||||
</Identity>
|
||||
<ResourceGatherer>
|
||||
<BaseSpeed>2.0</BaseSpeed>
|
||||
</ResourceGatherer>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="units/hele_infantry_archer_b">
|
||||
<Identity>
|
||||
<IconCell>10</IconCell>
|
||||
</Identity>
|
||||
<ResourceGatherer>
|
||||
<BaseSpeed>1.5</BaseSpeed>
|
||||
</ResourceGatherer>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="units/hele_infantry_archer_a">
|
||||
<Identity>
|
||||
<IconCell>11</IconCell>
|
||||
</Identity>
|
||||
<ResourceGatherer>
|
||||
<BaseSpeed>2.0</BaseSpeed>
|
||||
</ResourceGatherer>
|
||||
|
@ -10,4 +10,8 @@
|
||||
<VisualActor>
|
||||
<Actor>structures/hellenes/trireme_cor.xml</Actor>
|
||||
</VisualActor>
|
||||
<Footprint>
|
||||
<Square width="6.0" depth="50.0"/>
|
||||
<Height>8.0</Height>
|
||||
</Footprint>
|
||||
</Entity>
|
||||
|
@ -3,6 +3,7 @@ use warnings;
|
||||
|
||||
use File::Find;
|
||||
use XML::Simple;
|
||||
use XML::LibXML;
|
||||
use Data::Dumper;
|
||||
|
||||
my $vfsroot = '../../../binaries/data/mods';
|
||||
@ -10,6 +11,10 @@ my $vfsroot = '../../../binaries/data/mods';
|
||||
my (%dot_actor, %dot_inherit);
|
||||
my %xml = ('template_entity_full.xml' => 1, 'template_entity_quasi.xml' => 1);
|
||||
|
||||
my $tro = `trang oldformat.rnc oldformat.rng 2>&1`;
|
||||
die $tro if $tro;
|
||||
my $rngschema = XML::LibXML::RelaxNG->new(location => 'oldformat.rng');
|
||||
|
||||
convert_all("$vfsroot/public");
|
||||
convert_all("$vfsroot/internal") if -e "$vfsroot/internal";
|
||||
|
||||
@ -33,6 +38,17 @@ sub convert_all {
|
||||
$name =~ s/\.xml$//;
|
||||
|
||||
next if $name =~ /^(template_foundation|foundation_)/;
|
||||
next if $name =~ /^(template_corpse)$/;
|
||||
|
||||
my $doc = XML::LibXML->new->parse_file("$dir/$xml");
|
||||
eval {
|
||||
$rngschema->validate($doc);
|
||||
};
|
||||
if ($@) {
|
||||
warn $@;
|
||||
open my $f, "$dir/$xml";
|
||||
print <$f>;
|
||||
}
|
||||
|
||||
my %opt = (KeyAttr => []);
|
||||
|
||||
@ -239,9 +255,9 @@ sub convert {
|
||||
|
||||
if ($data->{Traits}[0]{Footprint}) {
|
||||
my $r = '';
|
||||
$r = ' replace=""' if
|
||||
($data->{Traits}[0]{Footprint}[0]{Width} and $data->{Parent} =~ /^template_(unit|unit_mechanical|unit_mechanical_siege|unit_mechanical_siege_onager|unit_(super|hero)_ranged)$/) or
|
||||
($data->{Traits}[0]{Footprint}[0]{Radius} and $data->{Parent} =~ /^template_structure_(special|military_fortress)$/);
|
||||
$r = ' replace=""' if $data->{Parent} and
|
||||
(($data->{Traits}[0]{Footprint}[0]{Width} and $data->{Parent} =~ /^template_(unit|unit_mechanical|unit_mechanical_siege|unit_mechanical_siege_onager|unit_(super|hero)_ranged)$/) or
|
||||
($data->{Traits}[0]{Footprint}[0]{Radius} and $data->{Parent} =~ /^template_structure_(special|military_fortress)$/));
|
||||
$out .= qq{$i<Footprint$r>\n};
|
||||
if ($data->{Traits}[0]{Footprint}[0]{Radius}) {
|
||||
$out .= qq{$i$i<Circle radius="$data->{Traits}[0]{Footprint}[0]{Radius}[0]"/>\n};
|
||||
@ -328,16 +344,18 @@ digraph g
|
||||
node [fontname=ArialN fontsize=8];
|
||||
node [shape=rectangle];
|
||||
EOF
|
||||
for (sort grep { not $dot_actor{$_} } keys %dot_actor) {
|
||||
print $dot qq{"$_";\n};
|
||||
}
|
||||
print $dot qq{node [style=filled fillcolor=lightgray]\n};
|
||||
for (sort grep { $dot_actor{$_} } keys %dot_actor) {
|
||||
print $dot qq{"$_";\n};
|
||||
}
|
||||
print $dot qq{node [style=solid shape=ellipse]\n};
|
||||
for (sort grep { $dot_actor{$_} } keys %dot_actor) {
|
||||
print $dot qq{"$dot_actor{$_}[0]" -> "$_";\n};
|
||||
if (0) {
|
||||
for (sort grep { not $dot_actor{$_} } keys %dot_actor) {
|
||||
print $dot qq{"$_";\n};
|
||||
}
|
||||
print $dot qq{node [style=filled fillcolor=lightgray]\n};
|
||||
for (sort grep { $dot_actor{$_} } keys %dot_actor) {
|
||||
print $dot qq{"$_";\n};
|
||||
}
|
||||
print $dot qq{node [style=solid shape=ellipse]\n};
|
||||
for (sort grep { $dot_actor{$_} } keys %dot_actor) {
|
||||
print $dot qq{"$dot_actor{$_}[0]" -> "$_";\n}; #"
|
||||
}
|
||||
}
|
||||
for my $p (sort keys %dot_inherit) {
|
||||
for my $c (sort keys %{$dot_inherit{$p}}) {
|
||||
|
255
source/tools/entconvert/oldformat.rnc
Normal file
255
source/tools/entconvert/oldformat.rnc
Normal file
@ -0,0 +1,255 @@
|
||||
element Entity {
|
||||
attribute Parent { text }?,
|
||||
element Traits {
|
||||
attribute Extant { "true" }? & # ignore
|
||||
attribute extant { "" }? & # ignore
|
||||
element Corpse { text }? & # ignore
|
||||
element Id {
|
||||
element Internal_Only { empty }? & # ignore
|
||||
element Generic { text }? & # ok
|
||||
element Specific { text }? & # ok
|
||||
element Icon { text }? & # ok
|
||||
element Icon_Cell { xsd:integer }? & # ok
|
||||
element Classes { text }? & # TODO
|
||||
element Rollover { text }? & # TODO
|
||||
element Tooltip { text }? & # TODO
|
||||
element History { text }? & # TODO
|
||||
element Civ { text }? & # ok
|
||||
element Civ_Code { text }? # ignore
|
||||
}? &
|
||||
element IsTerritoryCentre { "true" }? & # TODO
|
||||
element Audio {
|
||||
element Path { text } # ignore
|
||||
}? &
|
||||
element Population {
|
||||
element Rem { xsd:integer }?, # ok
|
||||
element Add { xsd:integer }? # ok
|
||||
}? &
|
||||
element Creation {
|
||||
element Foundation { text }? & # ok
|
||||
element Time { xsd:decimal }? & # ok
|
||||
element Resource {
|
||||
element Wood { xsd:integer }? & # ok
|
||||
element Metal { xsd:integer }? & # ok
|
||||
element Food { xsd:integer }? & # ok
|
||||
element Stone { xsd:integer }? # ok
|
||||
}? &
|
||||
element Socket { "Settlement" }? & # TODO
|
||||
element BuildingLimitCategory { text }? & # TODO
|
||||
element TerritoryRestriction { "All" | "Allied" }? # TODO
|
||||
}? &
|
||||
element Anchor {
|
||||
element Type { "Ground" | "Water" }?, # TODO
|
||||
element ConformX { xsd:decimal }?, # TODO
|
||||
element ConformZ { xsd:decimal }? # TODO
|
||||
}? &
|
||||
element Footprint {
|
||||
element Radius { xsd:decimal }?, # ok
|
||||
element Width { xsd:decimal }?, # ok
|
||||
element Depth { xsd:decimal }?, # ok
|
||||
element Height { xsd:decimal } # ok
|
||||
}? &
|
||||
element Garrison {
|
||||
element Max { xsd:integer } # TODO
|
||||
}? &
|
||||
element Health {
|
||||
element Max { xsd:integer }?, # ok
|
||||
element RegenRate { xsd:decimal }?, # ok
|
||||
element BarHeight { xsd:decimal }?, # TODO
|
||||
element Bar_Size { xsd:integer }?, # TODO
|
||||
element Repairable { empty }?, # TODO
|
||||
element Healable { empty }? # TODO
|
||||
}? &
|
||||
element Armour {
|
||||
element Hack { xsd:decimal }?, # ok
|
||||
element Pierce { xsd:decimal }?, # ok
|
||||
element Crush { xsd:decimal }? # ok
|
||||
}? &
|
||||
element Stamina {
|
||||
element Max { xsd:decimal }?, # TODO
|
||||
element BarHeight { xsd:decimal }?, # TODO
|
||||
element Bar_Size { xsd:integer }? # TODO
|
||||
}? &
|
||||
element Rank {
|
||||
element Height { xsd:decimal } # TODO
|
||||
}? &
|
||||
element Ai {
|
||||
element Behaviour { "Aggressive" | "Violent" | "Skittish" | "Passive" | "Defensive" } # TODO
|
||||
}? &
|
||||
element MiniMap {
|
||||
element Type { text }, # ok
|
||||
element Red { xsd:integer }?, # ok
|
||||
element Green { xsd:integer }?, # ok
|
||||
element Blue { xsd:integer }? # ok
|
||||
}? &
|
||||
element Vision {
|
||||
element Los { xsd:decimal }?, # TODO
|
||||
element Permanent { xsd:boolean }? # TODO
|
||||
}? &
|
||||
element Supply {
|
||||
element Max { xsd:integer }, # ok
|
||||
element Type { text }, # ok
|
||||
element SubType { text }? # ok
|
||||
}? &
|
||||
element Loot {
|
||||
element Xp { xsd:integer }?, # TODO
|
||||
element Food { xsd:decimal }?, # TODO
|
||||
element Wood { xsd:decimal }?, # TODO
|
||||
element Stone { xsd:integer }?, # TODO
|
||||
element Metal { xsd:integer }? # TODO
|
||||
}? &
|
||||
element Auras { # TODO
|
||||
element (Dropsite | Infidelity | Allure | Trample | Heal | Fear | Courage) {
|
||||
element Radius { xsd:decimal }? &
|
||||
element Bonus { xsd:integer }? &
|
||||
element Rate { xsd:integer }? &
|
||||
element Time { xsd:integer }? &
|
||||
element Speed { xsd:integer }? &
|
||||
element Duration { xsd:integer }? &
|
||||
element Crush { xsd:decimal }? &
|
||||
element Hack { xsd:decimal }? &
|
||||
element Pierce { xsd:decimal }? &
|
||||
element Types {
|
||||
element Food { empty }?,
|
||||
element Wood { empty }?,
|
||||
element Stone { empty }?,
|
||||
element Metal { empty }?
|
||||
}? &
|
||||
element r { xsd:decimal }? &
|
||||
element g { xsd:decimal }? &
|
||||
element b { xsd:decimal }? &
|
||||
element a { xsd:decimal }?
|
||||
}+
|
||||
}? &
|
||||
element Display { # TODO
|
||||
element Bars {
|
||||
element Enabled { xsd:boolean },
|
||||
element Offset { xsd:decimal },
|
||||
element Width { xsd:decimal },
|
||||
element Height { xsd:decimal }
|
||||
}
|
||||
}? &
|
||||
element Promotion { # TODO
|
||||
element Entity { text }?,
|
||||
element Req { xsd:integer }?
|
||||
}? &
|
||||
element Formation { # TODO
|
||||
element Category { "Melee" },
|
||||
element Curr { "Loose" },
|
||||
element List {
|
||||
element * { empty }+
|
||||
}
|
||||
}?
|
||||
}?,
|
||||
element Actions {
|
||||
element Attack {
|
||||
element Hack { xsd:decimal }?, # TODO
|
||||
element Pierce { xsd:decimal }?, # TODO
|
||||
element Crush { xsd:decimal }?, # TODO
|
||||
element Ranged {
|
||||
(element Hack { xsd:decimal }? & # ok
|
||||
element Pierce { xsd:decimal }? & # ok
|
||||
element Crush { xsd:decimal }?), # ok
|
||||
element MinRange { xsd:decimal }?, # ok
|
||||
element Range { xsd:decimal }?, # ok
|
||||
element Speed { xsd:integer }?, # ok
|
||||
element ProjectileSpeed { xsd:decimal }? # ok
|
||||
}?,
|
||||
element Melee {
|
||||
element Hack { xsd:decimal }?, # ok
|
||||
element Pierce { xsd:decimal }?, # ok
|
||||
element Crush { xsd:decimal }?, # ok
|
||||
element Range { xsd:decimal }?, # ok
|
||||
element RangeMin { xsd:decimal }?, # ok
|
||||
element Speed { xsd:integer }? # ok
|
||||
}?,
|
||||
element Charge { # TODO
|
||||
element Hack { xsd:decimal }?,
|
||||
element Pierce { xsd:decimal }?,
|
||||
element Crush { xsd:decimal }?,
|
||||
element Range { xsd:decimal }?,
|
||||
element RangeMin { xsd:decimal }?,
|
||||
element Speed { xsd:integer }?
|
||||
}?
|
||||
}? &
|
||||
element Create {
|
||||
element List {
|
||||
element StructCiv {
|
||||
element * { empty }+ # ok
|
||||
}?,
|
||||
element StructMil {
|
||||
element * { empty }+ # ok
|
||||
}?,
|
||||
element Train {
|
||||
element * { empty }+ # ok
|
||||
}?,
|
||||
element Research {
|
||||
element * { empty }* # TODO
|
||||
}?
|
||||
}?,
|
||||
element Speed { xsd:integer }?, # TODO
|
||||
element Rally { empty }? # TODO
|
||||
}? &
|
||||
element Explore { empty }? & # TODO
|
||||
element Patrol { empty }? & # TODO
|
||||
element Escort {
|
||||
element Distance { xsd:decimal } # TODO
|
||||
}? &
|
||||
element Barter {
|
||||
element List {
|
||||
element Food { empty }, # TODO
|
||||
element Wood { empty }, # TODO
|
||||
element Stone { empty }, # TODO
|
||||
element Metal { empty } # TODO
|
||||
}
|
||||
}? &
|
||||
element Move {
|
||||
element Speed { xsd:decimal }, # ok
|
||||
element Speed_Curr { empty }?, # TODO
|
||||
element TurningRadius { xsd:decimal }?, # TODO
|
||||
element Run {
|
||||
element Speed { xsd:decimal } & # TODO
|
||||
element Range { xsd:decimal }? & # TODO
|
||||
element RangeMin { xsd:decimal }? & # TODO
|
||||
element RegenRate { xsd:decimal }? & # TODO
|
||||
element DecayRate { xsd:decimal }? # TODO
|
||||
}?,
|
||||
element PassThroughAllies { "true" }? # TODO
|
||||
}? &
|
||||
element Gather {
|
||||
element Resource {
|
||||
element Food {
|
||||
element Fruit { xsd:decimal }?, # ok
|
||||
element Grain { xsd:decimal }?, # ok
|
||||
element Meat { xsd:decimal }, # ok
|
||||
element Fish { xsd:decimal }? # ok
|
||||
} &
|
||||
element Wood { xsd:decimal }? & # ok
|
||||
element Metal { xsd:decimal }? & # ok
|
||||
element Stone { xsd:decimal }? # ok
|
||||
}?,
|
||||
element AffectedByAllure { "true" }?, # TODO
|
||||
element Range { xsd:decimal }?, # TODO
|
||||
element Speed { xsd:integer } # ok
|
||||
}? &
|
||||
element Repair {
|
||||
element Rate { xsd:decimal }, # TODO
|
||||
element Speed { xsd:integer } # TODO
|
||||
}? &
|
||||
element Build {
|
||||
element Rate { xsd:decimal }, # TODO
|
||||
element Speed { xsd:integer } # TODO
|
||||
}? &
|
||||
element Loot {
|
||||
element Resources { empty }?, # TODO
|
||||
element Xp { empty }? # TODO
|
||||
}? &
|
||||
element TownBell { empty }? # TODO
|
||||
}?,
|
||||
element Actor { text }?, # ok
|
||||
element SoundGroups {
|
||||
element (Walk|Run|Melee|Death|Build|Gather_Fruit|Gather_Grain|Gather_Wood|Gather_Stone|Gather_Metal) { text }+ # ok
|
||||
}?,
|
||||
element Script { attribute File { text } }?, # TODO
|
||||
element Event { attribute On { text }, attribute Function { text } }* # TODO
|
||||
}
|
Loading…
Reference in New Issue
Block a user