1
0
forked from 0ad/0ad

Added some combatant entities.

This was SVN commit r1302.
This commit is contained in:
MarkT 2004-11-11 07:11:00 +00:00
parent 793794649f
commit f1a8ea118e
82 changed files with 1308 additions and 14 deletions

View File

@ -13,6 +13,13 @@
; -xres=N set desired screen X resolution to <N> (integer)
; -yres=N set desired screen Y resolution to <N> (integer)
; -conf NAME=VAL set config variable <NAME> (string) to <VAL> (string)
;
; Command-line switches override anything in config or profile files.
; Profile settings
; profile = default
; System settings:
@ -92,13 +99,19 @@ hotkey.camera.zoom.in = Plus, Equals, NumPlus ; Zoom camera in.
hotkey.camera.zoom.out = Minus, NumMinus ; Zoom camera out.
hotkey.camera.zoom.wheel.in = WheelDown ; Zoom camera in (wheel speed).
hotkey.camera.zoom.wheel.out = WheelUp ; Zoom camera out (wheel speed).
hotkey.camera.rotate = "Ctrl+MouseMiddle" ; Rotate view by moving mouse.
hotkey.camera.rotate.abouttarget = "MouseLeft+MouseRight" ; Rotate view by moving mouse.
hotkey.camera.rotate = "Ctrl+MouseMiddle" ; Rotate view by moving mouse, maintaining the
; absolute position of the camera
hotkey.camera.rotate.keyboard = "Shift" ;
hotkey.camera.rotate.abouttarget = "MouseLeft+MouseRight" ; Rotate view by moving mouse, maintaining the
; world coordinates of the centre of the viewport
hotkey.camera.rotate.abouttarget.keyboard = "Ctrl" ;
hotkey.camera.pan = MouseMiddle, ForwardSlash ; Scroll by moving mouse.
hotkey.camera.pan.left = LeftArrow ; Scroll screen left.
hotkey.camera.pan.right = RightArrow ; Scroll screen right.
hotkey.camera.pan.forward = UpArrow ; Scroll screen up.
hotkey.camera.pan.backward = DownArrow ; Scroll screen down.
hotkey.camera.pan.keyboard = "~Shift+~Ctrl" ; = holding neither Ctrl nor Shift
hotkey.camera.left = LeftArrow ; Scroll or rotate left.
hotkey.camera.right = RightArrow ; Scroll or rotate right.
hotkey.camera.up = UpArrow ; Scroll or rotate up/forwards.
hotkey.camera.down = DownArrow ; Scroll or rotate down/backwards.
hotkey.camera.bookmark.0 = F5 ; Saved bookmark 1.
hotkey.camera.bookmark.1 = F6 ; Saved bookmark 2.
hotkey.camera.bookmark.2 = F7 ; Saved bookmark 3.
@ -149,6 +162,7 @@ hotkey.teamtray.toggle = "Shift+T" ; Toggle Team Tray.
hotkey.flipgui.toggle = "Alt+G" ; Toggle GUI to top or bottom of screen.
; (TEMPORARY)
hotkey.alwayson.toggle = "Shift+X" ; Toggle always ons (Exit Button, End Game Button).
hotkey.onlinehelp = "F1"
; UNMAPPED KEY/MOUSE REFERENCE:

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia" Parent="template_entity">
<Traits>
<Id
civ_code="gaia"
civ="Gaia"
generic="Generic Gaia"
internal_only="true"
version="0.1 pasap2"
class1="Gaia"
type.gaia="true"
type.gaia.group="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia_fauna" Parent="template_gaia">
<Traits>
<Id
generic="Generic Fauna"
class2="Fauna"
type.gaia.group.fauna="true"
/>
</Traits>
<Footprint Radius="1.0"/>
</Entity>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia_flora" Parent="template_gaia">
<Traits>
<Id
generic="Generic Flora"
class2="Flora"
type.gaia.group.flora="true"
/>
</Traits>
<Footprint Radius="1.0"/>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia_flora_plant" Parent="template_gaia_flora">
<Traits>
<Id
generic="Plant"
class3="Plant"
rollover="Plants serve to beautify the landscape."
/>
</Traits>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia_flora_tree" Parent="template_gaia_flora">
<Traits>
<Id
generic="Tree"
class3="Tree"
type.gaia.group.resource="true"
rollover="Chop these down to accumulate Wood."
/>
<Health
hitpoints="100"
curr="100"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia_flora_tree_pine" Parent="template_gaia_flora_tree">
<Traits>
<Id
generic="Tree"
specific="Pine Tree"
icon="flora_deciduotree"
history="The pine is an evergreen conifer."
/>
</Traits>
</Entity>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia_geo" Parent="template_gaia">
<Traits>
<Id
generic="Generic Geology"
class2="Geo"
type.gaia.group.geo="true"
/>
</Traits>
<Footprint Radius="1.0"/>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia_geo_mineral" Parent="template_gaia_geo">
<Traits>
<Id
generic="Mineral"
class3="Mineral"
rollover="A mineral deposit, providing access to rare forms of precious metal."
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia_geo_rock" Parent="template_gaia_geo">
<Traits>
<Id
generic="Rock"
class3="Rock"
rollover="A lump of hard common mineral. It can be mined to provide stone building material."
/>
</Traits>
</Entity>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia_special" Parent="template_gaia">
<Traits>
<Id
generic="Generic Special"
class2="Special"
type.gaia.group.special="true"
/>
</Traits>
<Footprint Radius="1.0"/>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_gaia_special_building" Parent="template_gaia_special">
<Traits>
<Id
generic="Gaia Building"
class3="Building"
rollover="A building unique to Gaia, such as a Settlement."
/>
</Traits>
</Entity>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="Pine8" Parent="Generic Tree">
<Entity Tag="wrld_flora_pine_8" Parent="template_gaia_flora_tree_pine">
<Traits>
<Id
generic="Pine Tree"
icon="flora_deciduotree"
internal_only="false"
/>
</Traits>
<Actor>Pine8</Actor>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="Pine9" Parent="Generic Tree">
<Entity Tag="wrld_flora_pine_9" Parent="template_gaia_flora_tree_pine">
<Traits>
<Id
generic="Pine Tree"
icon="flora_deciduotree"
internal_only="false"
/>
</Traits>
<Actor>Pine9</Actor>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="wrld_special_building_st1" Parent="template_gaia_special_building">
<Traits>
<Id
icon="gaia_st"
internal_only="false"
/>
</Traits>
<Actor>Settlement</Actor>
</Entity>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_other" Parent="template_entity">
<Traits>
<Id
civ_code="gaia"
civ="Gaia"
internal_only="true"
version="0.1 pasap2"
class1="Other"
type.other="true"
type.other.group="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_other_projectile" Parent="template_other">
<Traits>
<Id
generic="Generic Projectile"
class2="Projectile"
type.other.group.projectile="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_other_special" Parent="template_other">
<Traits>
<Id
generic="Generic Special"
class2="Special"
type.other.group.special="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_structure" Parent="template_entity">
<Traits>
<Id
generic="Generic Structure"
internal_only="true"
version="0.1 pasap2"
class1="Structure"
type.structure="true"
type.structure.group="true"
type.structure.phase="true"
type.structure.material="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_structure_norm" Parent="template_structure">
<Traits>
<Id
generic="Generic Normal Structure"
class2="Norm"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_structure_norm_civic" Parent="template_structure_norm">
<Traits>
<Id
generic="Generic Civic Structure"
class3="Civic"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="cc" Parent="template_structure_norm_civic">
<Traits>
<Id
generic="Civilian Centre"
rollover="The heart of the player's empire. Trains economic units, and can only be built on settlements."
type.structure.group.housing="true"
type.structure.phase.vp="true"
/>
<Health
curr="1000"
hitpoints="1000"
/>
<Population
add="10"
/>
</Traits>
<Footprint Width="24.0" Height="24.0"/>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="hc" Parent="template_structure_norm_civic">
<Traits>
<Id
generic="Temple"
rollover="The Temple trains physicians, researches medical technologies, and provides healing to nearby allied organic units."
type.structure.phase.tp="true"
/>
<Health
curr="600"
hitpoints="600"
/>
</Traits>
<Footprint Width="18.0" Height="18.0"/>
</Entity>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="ho" Parent="template_structure_norm_civic">
<Traits>
<Id
generic="House"
rollover="A civic building that increases the player's population."
type.structure.group.housing="true"
type.structure.phase.vp="true"
/>
<Health
curr="250"
hitpoints="250"
/>
<Population
add="5"
/>
</Traits>
<Footprint Width="12.0" Height="12.0"/>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="tf" Parent="template_structure_norm_civic">
<Traits>
<Id
generic="Outpost"
rollover="Outposts can be built anywhere on a player's land, and garrisoned to provide reconnaissance and defense against attackers."
type.structure.phase.vp="true"
/>
<Health
curr="60"
hitpoints="60"
/>
</Traits>
<Footprint Width="6.0" Height="6.0"/>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="wc" Parent="template_structure_norm_civic">
<Traits>
<Id
generic="Wall"
rollover="Build walls to protect a town, close off choke points, and defend resource sites."
type.structure.phase.vp="true"
/>
<Health
curr="500"
hitpoints="500"
/>
</Traits>
<Footprint Width="6.0" Height="6.0"/>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="wg" Parent="template_structure_norm_civic">
<Traits>
<Id
generic="Gate"
rollover="Gates allow allied units access through a wall, but are also its most vulnerable point."
type.structure.phase.vp="true"
/>
<Health
curr="100"
hitpoints="100"
/>
</Traits>
<Footprint Width="6.0" Height="6.0"/>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="wt" Parent="template_structure_norm_civic">
<Traits>
<Id
generic="Tower"
rollover="Towers can be garrisoned to defend a city wall against attackers."
type.structure.phase.vp="true"
/>
<Health
curr="80"
hitpoints="80"
/>
</Traits>
<Footprint Width="6.0" Height="6.0"/>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_structure_norm_economic" Parent="template_structure_norm">
<Traits>
<Id
generic="Generic Economic Structure"
class3="Economic"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="fc" Parent="template_structure_norm_economic">
<Traits>
<Id
generic="Farmstead"
rollover="The Farmstead is the centre for food gathering operations. Fields and Corrals must be built at lots adjacent to it."
type.structure.phase.vp="true"
/>
<Health
curr="50"
hitpoints="50"
/>
</Traits>
<Footprint Width="12.0" Height="12.0"/>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="rc" Parent="template_structure_norm_economic">
<Traits>
<Id
generic="Mill"
rollover="A Mill must be constructed near a source of Wood, Stone or Ore in order to collect them. It also provides technologies that improve gathering of these resources."
type.structure.phase.vp="true"
/>
<Health
curr="50"
hitpoints="50"
/>
</Traits>
<Footprint Width="12.0" Height="12.0"/>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="tc" Parent="template_structure_norm_civic">
<Traits>
<Id
generic="Market"
rollover="The Market creates trade units and allows resources to be bartered. Traders travel between Markets, generating resources on a successful round-trip."
type.structure.phase.tp="true"
/>
<Health
curr="600"
hitpoints="600"
/>
</Traits>
<Footprint Width="18.0" Height="18.0"/>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_structure_norm_military" Parent="template_structure_norm">
<Traits>
<Id
generic="Generic Military Structure"
class3="Military"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="ff" Parent="template_structure_norm_military">
<Traits>
<Id
generic="Fortress"
rollover="The Fortress represents the pinnacle of a civilisation's military prowess. Heroes, powerful advanced units, and unique technologies are available from this structure."
type.structure.phase.cp="true"
/>
<Health
curr="1000"
hitpoints="1000"
/>
</Traits>
<Footprint Width="24.0" Height="24.0"/>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="mc" Parent="template_structure_norm_military">
<Traits>
<Id
generic="Barracks"
rollover="The Barracks trains military units. Technologies may also be researched to improve their equipment."
type.structure.phase.tp="true"
/>
<Health
curr="600"
hitpoints="600"
/>
</Traits>
<Footprint Width="18.0" Height="18.0"/>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="pc" Parent="template_structure_norm_military">
<Traits>
<Id
generic="Dock"
rollover="Naval vessels are manufactured at this building. A Dock must be built on the shoreline of a body of water."
type.structure.phase.tp="true"
/>
<Health
curr="600"
hitpoints="600"
/>
</Traits>
<Footprint Width="18.0" Height="18.0"/>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_structure_norm_military" Parent="template_structure_norm">
<Traits>
<Id
generic="Generic Military Structure"
class3="Military"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="sb" Parent="template_structure_norm_sb">
<Traits>
<Id
generic="Special Building"
rollover="This is a special building unique to a particular civilisation."
type.structure.phase.cp="true"
/>
</Traits>
<Footprint Width="24.0" Height="24.0"/>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_structure_resource" Parent="template_structure">
<Traits>
<Id
generic="Generic Resource Structure"
class2="Resource"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="fc" Parent="template_structure_resource">
<Traits>
<Id
generic="Corral"
rollover="Herd domestic animals into a Corral, and they will provide Food for your civilisation."
type.structure.phase.vp="true"
/>
<Health
curr="50"
hitpoints="50"
/>
</Traits>
<Footprint Width="12.0" Height="12.0"/>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="fv" Parent="template_structure_resource">
<Traits>
<Id
generic="Field"
rollover="Assign an economic unit to a Field to harvest grain and generate Food."
type.structure.phase.vp="true"
/>
<Health
curr="50"
hitpoints="50"
/>
</Traits>
<Footprint Width="12.0" Height="12.0"/>
</Entity>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_corpse">
<!-- Beware! The string "false" maps to 'true'. The only string that maps to 'false' is "". -->
<Traits extant="">
<Id
type="true"
generic="Corpse"
/>
<!-- Defaults to no armour -->
<Armour
Value="0"
Crush="0.0"
Hack="0.0"
Pierce="0.0"
/>
</Traits>
<Actions>
</Actions>
</Entity>

View File

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_entity">
<Traits extant="true" corpse="template_corpse">
<Id
type="true"
/>
<!-- Defaults to no armour -->
<Armour
Value="0"
Crush="0.0"
Hack="0.0"
Pierce="0.0"
/>
<Health />
</Traits>
<Event On="Attack">
<![CDATA[
// Attack logic.
dmg = new DamageType();
dmg.crush = this.actions.attack.damage * this.actions.attack.crush;
dmg.hack = this.actions.attack.damage * this.actions.attack.hack;
dmg.pierce = this.actions.attack.damage * this.actions.attack.pierce;
evt.target.damage( dmg, this );
]]>
</Event>
<Event On="TakesDamage">
<![CDATA[
// Apply armour and work out how much damage we actually take
crushDamage = evt.damage.crush - this.traits.armour.value * this.traits.armour.crush;
if( crushDamage < 0 ) crushDamage = 0;
pierceDamage = evt.damage.pierce - this.traits.armour.value * this.traits.armour.pierce;
if( pierceDamage < 0 ) pierceDamage = 0;
hackDamage = evt.damage.hack - this.traits.armour.value * this.traits.armour.hack;
if( hackDamage < 0 ) hackDamage = 0;
totalDamage = evt.damage.typeless + crushDamage + pierceDamage + hackDamage;
// Minimum of 1 damage
if( totalDamage < 1 ) totalDamage = 1;
this.traits.health.curr -= totalDamage;
if( this.traits.health.curr <= 0 )
{
this.kill();
if( evt.inflictor )
console.write( this.traits.id.generic + " got the point of " + evt.inflictor.traits.id.generic + "'s Gladius." );
else
console.write( this.traits.id.generic + " died in mysterious circumstances." );
}
else if( evt.inflictor && this.actions.attack )
{
// If we're not already doing something else, take a measured response - hit 'em back.
// You know, I think this is quite possibly the first AI code the AI divlead has written
// for 0 A.D....
if( this.isIdle() )
this.order( ORDER_ATTACK, evt.inflictor );
}
]]>
</Event>
<Event On="TargetChanged">
<![CDATA[
// This event lets us know when the user moves his/her cursor to a different unit (provided this
// unit is selected) - use it to tell the engine what context cursor should be displayed, given
// the target.
// Attack iff there's a target, it's our enemy, and we're armed. Otherwise move.
// ToString is needed because every property is actually an object (though that's usually
// hidden from you) and comparing an object to any other object in JavaScript (1.5, at least)
// yields false. ToString converts them to their actual values (i.e. the four character
// string) first.
if( evt.target &&
this.actions.attack &&
( evt.target.traits.id.civ_code != "gaia" ) &&
( evt.target.traits.id.civ_code.toString() != this.traits.id.civ_code.toString() ) )
evt.defaultAction = ORDER_ATTACK;
else
evt.defaultAction = ORDER_GOTO;
]]>
</Event>
<Event On="PrepareOrder">
<![CDATA[
// This event gives us a chance to veto any order we're given before we execute it.
// Not sure whether this really belongs here like this: the alternative is to override it in
// subtypes - then you wouldn't need to check tags, you could hardcode results.
switch( evt.orderType )
{
case ORDER_GOTO:
if( !this.actions.move )
evt.preventDefault();
break;
case ORDER_PATROL:
if( !this.actions.patrol )
evt.preventDefault();
break;
case ORDER_ATTACK:
// If we can't attack, we're not targeting a unit, or that unit is the same civ as us.
// (Should of course be same /player/ as us - not ready yet.)
if( !this.actions.attack ||
!evt.target ||
( evt.target.traits.id.civ_code.toString() == this.traits.id.civ_code.toString() ) )
evt.preventDefault();
break;
default:
evt.preventDefault();
}
]]>
</Event>
<Actions>
</Actions>
</Entity>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="combat_dude_iberian" Parent="isw">
<Actor>Carthaginian Dude</Actor>
<Traits>
<Id
civ_code="kart"
civ="The Carthaginians"
internal_only="false"
specific="Dude"
ranked="Basic Dude"
icon="unit_dude"
rollover="Carthaginian Dudes have strong armour, but weaker attack than the other dudes."
history="Carthaginian Dude is actually a spy from foreign powers seeking to infiltrate the 0 A.D. development team. Fortunately, the abbreviation of 'Carthaginian' to 'Kart' so confused the Dude that he now spends his days wandering through the Pyrogenesian wastes postulating an entirely new system of philosophy in an effort to understand this seemingly inexplicable act."
/>
<!-- Should stop 3 hack, 1 pierce damage... -->
<Armour
value="4"
crush="0.0"
hack="0.75"
pierce="0.25"
/>
</Traits>
<Actions>
<!-- 2 hack, 2 pierce damage... -->
<Attack
range="1.5"
damage="4"
crush="0.0"
hack="0.5"
pierce="0.5"
/>
</Actions>
</Entity>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="combat_dude_iberian" Parent="isw">
<Actor>Iberian Dude</Actor>
<Traits>
<Id
civ_code="iber"
civ="The Iberians"
internal_only="false"
specific="Dude"
ranked="Basic Dude"
icon="unit_dude"
rollover="Iberian Dudes have average attack and armour."
history="After a troubled childhood, Brad Jones took up a career as a stunt double for computer-generated characters. Some time later, he was invited on to the team by Jason Bishop, and can currently be seen playing Iberian Dude in the latest round of combat tests."
/>
<!-- Should stop 2 hack, 1 pierce damage... -->
<Armour
value="2"
crush="0.0"
hack="0.667"
pierce="0.333"
/>
</Traits>
<Actions>
<!-- 4 hack, 2 pierce damage... -->
<Attack
range="1.5"
damage="6"
crush="0.0"
hack="0.667"
pierce="0.333"
/>
</Actions>
</Entity>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="combat_dude_roman" Parent="isw">
<Actor>Roman Dude</Actor>
<Traits>
<Id
civ_code="rome"
civ="Pre-Imperial Roman"
internal_only="false"
specific="Dude"
ranked="Basic Dude"
icon="unit_dude"
rollover="Roman Dudes deal more damage, but have less armour compared to other Dudes."
history="The Dude has little history, since he's only been in the game for a few months."
/>
<!-- Should stop 1 hack, 1 pierce damage... -->
<Armour
value="2"
crush="0.0"
hack="0.5"
pierce="0.5"
/>
</Traits>
<Actions>
<!-- 5 hack, 3 pierce damage... -->
<Attack
range="1.5"
damage="8"
crush="0.0"
hack="0.625"
pierce="0.375"
/>
</Actions>
</Entity>

View File

@ -1,18 +1,23 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="Generic Unit">
<Entity Tag="template_unit" Parent="template_entity">
<Traits>
<Id
generic="Generic Unit"
internal_only="true"
version="0.1 pasap2"
class1="Unit"
type.unit="true"
type.unit.group="true"
/>
<Health
hitpoints="100"
hpcurr="70"
curr="150"
hitpoints="150"
/>
</Traits>
<Footprint Radius="0.5"/>
<Actions>
<Move
speed="3.0"
@ -20,5 +25,4 @@
/>
<Patrol />
</Actions>
<Footprint Radius="0.5"/>
</Entity>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_cavalry" Parent="template_unit">
<Traits>
<Id
generic="Generic Cavalry Unit"
class2="Cavalry"
type.unit.group.military="true"
type.unit.mounted="true"
type.unit.material.organic="true"
type.unit.group.citizensoldier="true"
type.unit.group.worker="true"
/>
</Traits>
<Footprint Radius="1.5"/>
<Actions>
<Move
speed="8.0"
turningRadius="1.0"
/>
</Actions>
</Entity>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_cavalry_melee" Parent="template_unit_cavalry">
<Traits>
<Id
generic="Generic Melee Cavalry Unit"
class3="Melee"
type.unit.attack.melee="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="csp" Parent="template_unit_cavalry_melee">
<Traits>
<Id
generic="Cavalry Spearman"
type.unit.mounted.spear="true"
type.unit.weapon.spear="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="csw" Parent="template_unit_cavalry_melee">
<Traits>
<Id
generic="Cavalry Swordsman"
type.unit.mounted.sword="true"
type.unit.weapon.sword="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_cavalry_ranged" Parent="template_unit_cavalry">
<Traits>
<Id
generic="Generic Ranged Cavalry Unit"
class3="Ranged"
type.unit.attack.ranged="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="car" Parent="template_unit_cavalry_ranged">
<Traits>
<Id
generic="Cavalry Archer"
type.unit.mounted.bow="true"
type.unit.weapon.bow="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="cjv" Parent="template_unit_cavalry_ranged">
<Traits>
<Id
generic="Cavalry Javelinist"
type.unit.mounted.javelin="true"
type.unit.weapon.javelin="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_hero" Parent="template_unit">
<Traits>
<Id
generic="Hero"
class2="Hero"
type.unit.group.military="true"
type.unit.group.hero="true"
type.unit.material.organic="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_infantry" Parent="template_unit">
<Traits>
<Id
generic="Generic Infantry Unit"
class2="Infantry"
type.unit.group_military="true"
type.unit.foot="true"
type.unit.material_organic="true"
type.unit.group.citizensoldier="true"
type.unit.group.worker="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_infantry_melee" Parent="template_unit_infantry">
<Traits>
<Id
generic="Generic Melee Infantry Unit"
class3="Melee"
type.unit.attack.melee="true"
/>
</Traits>
<Event On="Initialize">
<![CDATA[
// PASAP wander-between-houses script
houses = entities.subset( "this.template.tag == \"House\"" );
while( houses.length )
{
index = Math.floor( Math.random() * houses.length );
house = houses[index];
console.write( house.position );
this.orderQueued( 4 /* patrol */, house.position.x, house.position.z );
houses.remove( index );
}
console.write( "A new Dude has entered your dungeon." );
]]>
</Event>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="isp" Parent="template_unit_infantry_melee">
<Traits>
<Id
generic="Infantry Spearman"
type.unit.foot.spear="true"
type.unit.weapon.spear="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="isw" Parent="template_unit_infantry_melee">
<Traits>
<Id
generic="Infantry Swordsman"
type.unit.foot.sword="true"
type.unit.weapon.sword="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_infantry_ranged" Parent="template_unit_infantry">
<Traits>
<Id
generic="Generic Ranged Infantry Unit"
class3="Ranged"
type.unit.attack.ranged="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="iar" Parent="template_unit_infantry_ranged">
<Traits>
<Id
generic="Infantry Archer"
type.unit.foot.bow="true"
type.unit.weapon.bow="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="ijv" Parent="template_unit_infantry_ranged">
<Traits>
<Id
generic="Infantry Javelinist"
type.unit.foot.javelin="true"
type.unit.weapon.javelin="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="isl" Parent="template_unit_infantry_ranged">
<Traits>
<Id
generic="Infantry Slinger"
type.unit.foot.sling="true"
type.unit.weapon.sling="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_mechanical" Parent="template_unit">
<Traits>
<Id
generic="Generic Mechanical Unit"
class2="Mechanical"
type.unit.group.military="true"
type.unit.material.mechanical="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_mechanical_ship" Parent="template_unit_mechanical">
<Traits>
<Id
generic="Generic Ship Unit"
class3="Ship"
type.unit.group.ship="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="bir" Parent="template_unit_mechanical_ship">
<Traits>
<Id
generic="Bireme"
type.unit.group.warship="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="mer" Parent="template_unit_mechanical_ship">
<Traits>
<Id
generic="Merchant Ship"
type.unit.group.military="false"
type.unit.group.trade="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="qui" Parent="template_unit_mechanical_ship">
<Traits>
<Id
generic="Quinquereme"
type.unit.group.warship="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="tri" Parent="template_unit_mechanical_ship">
<Traits>
<Id
generic="Trireme"
type.unit.group.warship="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_mechanical_siege" Parent="template_unit_mechanical">
<Traits>
<Id
generic="Generic Siege Unit"
class3="Siege"
type.unit.group.siege="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="bal" Parent="template_unit_mechanical_siege">
<Traits>
<Id
generic="Ballista"
type.unit.attack.ranged="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="ong" Parent="template_unit_mechanical_siege">
<Traits>
<Id
generic="Onager"
type.unit.attack.ranged="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="ram" Parent="template_unit_mechanical">
<Traits>
<Id
generic="Ram"
type.unit.attack.melee="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_superunit" Parent="template_unit">
<Traits>
<Id
generic="Generic Super Unit"
class2="Super Unit"
type.unit.group.military="true"
type.unit.group.superunit="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_superunit_scu" Parent="template_unit_superunit">
<Traits>
<Id
generic="Super Cavalry Unit"
class3="Super Cavalry Unit"
type.unit.material.organic="true"
type.unit.mounted="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_superunit_siu" Parent="template_unit_superunit">
<Traits>
<Id
generic="Super Infantry Unit"
class3="Super Infantry Unit"
type.unit.material.organic="true"
type.unit.foot="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_superunit_ssu" Parent="template_unit_superunit">
<Traits>
<Id
generic="Super Siege Unit"
class3="Super Siege Unit"
type.unit.material.mechanical="true"
type.unit.group.siege="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="template_unit_support" Parent="template_unit">
<Traits>
<Id
generic="Generic Support Unit"
class2="Support"
type.unit.support="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="fem" Parent="template_unit_support">
<Traits>
<Id
generic="Female Citizen"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="med" Parent="template_unit_support">
<Traits>
<Id
generic="Healer"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Entity Tag="trd" Parent="template_unit_support">
<Traits>
<Id
generic="Trader"
type.unit.group.trade="true"
/>
</Traits>
</Entity>

View File

@ -0,0 +1,3 @@
; Settings in a profile config are used instead of the equivalent settings in the system.cfg file,
; but note that not some settings are only allowed to be specified in system.cfg, for security reasons.