stratagus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Stratagus-CVS] stratagus/data/ccl spells.lua units.lua human/u...


From: address@hidden
Subject: [Stratagus-CVS] stratagus/data/ccl spells.lua units.lua human/u...
Date: 16 Dec 2003 08:11:15 +1100

CVSROOT:        /home/strat
Module name:    stratagus
Changes by:      <address@hidden>       03/12/16 08:11:14

Modified files:
        data/ccl       : spells.lua units.lua 
        data/ccl/human : units.lua 
        data/ccl/orc   : units.lua 

Log message:
        Changed DefineUnitType to use a table

Patches:
Index: stratagus/data/ccl/human/units.lua
diff -u stratagus/data/ccl/human/units.lua:1.2 
stratagus/data/ccl/human/units.lua:1.3
--- stratagus/data/ccl/human/units.lua:1.2      Sun Nov 30 15:43:08 2003
+++ stratagus/data/ccl/human/units.lua  Tue Dec 16 08:11:12 2003
@@ -26,7 +26,7 @@
 --      along with this program; if not, write to the Free Software
 --      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  
USA
 --
---     $Id: units.lua,v 1.2 2003/11/30 04:43:08 jsalmon3 Exp $
+--     $Id: units.lua,v 1.3 2003/12/15 21:11:12 jsalmon3 Exp $
 
 --=============================================================================
 --     Define unit-types.
@@ -34,68 +34,68 @@
 --     NOTE: Save can generate this table.
 --
 
-DefineUnitType("unit-footman", "name", "Footman",
-  "files", {"tileset-summer", "human/units/footman.png"},
-  "size", {72, 72},
-  "animations", "animations-footman", "icon", "icon-footman",
-  "costs", {"time", 60, "gold", 600},
-  "speed", 10,
-  "hit-points", 60,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 4, "computer-reaction-range", 6, "person-reaction-range", 4,
-  "armor", 2, "basic-damage", 6, "piercing-damage", 3, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 60,
-  "points", 50,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-footman", { Name = "Footman",
+  Files = {"tileset-summer", "human/units/footman.png"},
+  Size = {72, 72},
+  Animations = "animations-footman", Icon = "icon-footman",
+  Costs = {"time", 60, "gold", 600},
+  Speed = 10,
+  HitPoints = 60,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 4, ComputerReactionRange = 6, PersonReactionRange = 4,
+  Armor = 2, BasicDamage = 6, PiercingDamage = 3, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 60,
+  Points = 50,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "footman-selected",
     "acknowledge", "footman-acknowledge",
     "ready", "footman-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "footman-attack"})
+    "attack", "footman-attack"} } )
 
-DefineUnitType("unit-peasant", "name", "Peasant",
-  "files", {"tileset-summer", "human/units/peasant.png"},
-  "size", {72, 72},
-  "draw-level", 19,
-  "animations", "animations-peasant", "icon", "icon-peasant",
-  "costs", {"time", 45, "gold", 400},
-  "speed", 10,
-  "hit-points", 30,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 4, "computer-reaction-range", 6, "person-reaction-range", 4,
-  "basic-damage", 3, "piercing-damage", 2, "missile", "missile-none",
-  "max-attack-range", 1,
-  "priority", 50,
-  "points", 30,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-harvest",
-  "can-attack", "repair-range", 1,
-  "can-target-land",
-  "land-unit",
-  "coward",
-  "can-gather-resource", {
+DefineUnitType("unit-peasant", { Name = "Peasant",
+  Files = {"tileset-summer", "human/units/peasant.png"},
+  Size = {72, 72},
+  DrawLevel = 19,
+  Animations = "animations-peasant", Icon = "icon-peasant",
+  Costs = {"time", 45, "gold", 400},
+  Speed = 10,
+  HitPoints = 30,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 4, ComputerReactionRange = 6, PersonReactionRange = 4,
+  BasicDamage = 3, PiercingDamage = 2, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 50,
+  Points = 30,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "harvest",
+  CanAttack = true, RepairRange = 1,
+  CanTargetLand = true,
+  LandUnit = true,
+  Coward = true,
+  CanGatherResource = {
     "file-when-loaded", "human/units/peasant_with_gold.png",
     "resource-id", "gold",
 --    "harvest-from-outside",
     "resource-capacity", 100,
     "wait-at-resource", 150,
     "wait-at-depot", 150},
-  "can-gather-resource", {
+  CanGatherResource = {
     "file-when-loaded", "human/units/peasant_with_wood.png",
     "resource-id", "wood",
     "resource-capacity", 100,
@@ -104,9 +104,9 @@
     "wait-at-depot", 150,
     "lose-resources",
     "terrain-harvester"},
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "peasant-selected",
     "acknowledge", "peasant-acknowledge",
     "ready", "peasant-ready",
@@ -114,1339 +114,1339 @@
     "harvest", "wood", "tree chopping",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "peasant-attack"})
+    "attack", "peasant-attack"} } )
 
-DefineUnitType("unit-ballista", "name", "Ballista",
-  "files", {"tileset-summer", "human/units/ballista.png"},
-  "size", {64, 64},
-  "animations", "animations-ballista", "icon", "icon-ballista",
-  "costs", {"time", 250, "gold", 900, "wood", 300},
-  "speed", 5,
-  "hit-points", 110,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 9, "computer-reaction-range", 11, "person-reaction-range", 9,
-  "basic-damage", 80, "piercing-damage", 0, "missile", "missile-ballista-bolt",
-  "min-attack-range", 2, "max-attack-range", 8,
-  "priority", 70,
-  "points", 100,
-  "demand", 1,
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "right-attack",
-  "can-ground-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-ballista", { Name = "Ballista",
+  Files = {"tileset-summer", "human/units/ballista.png"},
+  Size = {64, 64},
+  Animations = "animations-ballista", Icon = "icon-ballista",
+  Costs = {"time", 250, "gold", 900, "wood", 300},
+  Speed = 5,
+  HitPoints = 110,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 9, ComputerReactionRange = 11, PersonReactionRange = 9,
+  BasicDamage = 80, PiercingDamage = 0, Missile = "missile-ballista-bolt",
+  MinAttackRange = 2, MaxAttackRange = 8,
+  Priority = 70,
+  Points = 100,
+  Demand = 1,
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  RightMouseAction = "attack",
+  CanGroundAttack = true,
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "ballista-selected",
     "acknowledge", "ballista-acknowledge",
     "ready", "ballista-ready",
     "help", "basic human voices help 1",
     "dead", "explosion",
-    "attack", "ballista-attack"})
+    "attack", "ballista-attack"} } )
 
-DefineUnitType("unit-knight", "name", "Knight",
-  "files", {"tileset-summer", "human/units/knight.png"},
-  "size", {72, 72},
-  "animations", "animations-knight", "icon", "icon-knight",
-  "costs", {"time", 90, "gold", 800, "wood", 100},
-  "speed", 13,
-  "hit-points", 90,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {42, 42},
-  "sight-range", 4, "computer-reaction-range", 6, "person-reaction-range", 4,
-  "armor", 4, "basic-damage", 8, "piercing-damage", 4, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 63,
-  "points", 100,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-knight", { Name = "Knight",
+  Files = {"tileset-summer", "human/units/knight.png"},
+  Size = {72, 72},
+  Animations = "animations-knight", Icon = "icon-knight",
+  Costs = {"time", 90, "gold", 800, "wood", 100},
+  Speed = 13,
+  HitPoints = 90,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {42, 42},
+  SightRange = 4, ComputerReactionRange = 6, PersonReactionRange = 4,
+  Armor = 4, BasicDamage = 8, PiercingDamage = 4, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 63,
+  Points = 100,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "knight-selected",
     "acknowledge", "knight-acknowledge",
     "ready", "knight-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "knight-attack"})
+    "attack", "knight-attack"} } )
 
-DefineUnitType("unit-archer", "name", "Archer",
-  "files", {"tileset-summer", "human/units/elven_archer.png"},
-  "size", {72, 72},
-  "animations", "animations-archer", "icon", "icon-archer",
-  "costs", {"time", 70, "gold", 500, "wood", 50},
-  "speed", 10,
-  "hit-points", 40,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {33, 33},
-  "sight-range", 5, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "basic-damage", 3, "piercing-damage", 6, "missile", "missile-arrow",
-  "max-attack-range", 4,
-  "priority", 55,
-  "points", 60,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-archer", { Name = "Archer",
+  Files = {"tileset-summer", "human/units/elven_archer.png"},
+  Size = {72, 72},
+  Animations = "animations-archer", Icon = "icon-archer",
+  Costs = {"time", 70, "gold", 500, "wood", 50},
+  Speed = 10,
+  HitPoints = 40,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {33, 33},
+  SightRange = 5, ComputerReactionRange = 7, PersonReactionRange = 5,
+  BasicDamage = 3, PiercingDamage = 6, Missile = "missile-arrow",
+  MaxAttackRange = 4,
+  Priority = 55,
+  Points = 60,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "archer-selected",
     "acknowledge", "archer-acknowledge",
     "ready", "archer-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "archer-attack"})
+    "attack", "archer-attack"} } )
 
-DefineUnitType("unit-mage", "name", "Mage",
-  "files", {"tileset-summer", "human/units/mage.png"},
-  "size", {72, 72},
-  "animations", "animations-mage", "icon", "icon-mage",
-  "costs", {"time", 120, "gold", 1200},
-  "speed", 8,
-  "hit-points", 60,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {33, 33},
-  "sight-range", 9, "computer-reaction-range", 11, "person-reaction-range", 9,
-  "basic-damage", 0, "piercing-damage", 9, "missile", "missile-lightning",
-  "max-attack-range", 2,
-  "priority", 70,
-  "points", 100,
-  "demand", 1,
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "can-cast-spell", {
+DefineUnitType("unit-mage", { Name = "Mage",
+  Files = {"tileset-summer", "human/units/mage.png"},
+  Size = {72, 72},
+  Animations = "animations-mage", Icon = "icon-mage",
+  Costs = {"time", 120, "gold", 1200},
+  Speed = 8,
+  HitPoints = 60,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {33, 33},
+  SightRange = 9, ComputerReactionRange = 11, PersonReactionRange = 9,
+  BasicDamage = 0, PiercingDamage = 9, Missile = "missile-lightning",
+  MaxAttackRange = 2,
+  Priority = 70,
+  Points = 100,
+  Demand = 1,
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  CanCastSpell = {
       "spell-fireball",
       "spell-slow",
       "spell-flame-shield",
       "spell-invisibility",
       "spell-polymorph",
       "spell-blizzard"},
-  "land-unit",
-  "coward",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+  LandUnit = true,
+  Coward = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "mage-selected",
     "acknowledge", "mage-acknowledge",
     "ready", "mage-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "mage-attack"})
+    "attack", "mage-attack"} } )
 
-DefineUnitType("unit-paladin", "name", "Paladin",
-  "use", "unit-knight",
-  "size", {72, 72},
-  "animations", "animations-knight", "icon", "icon-paladin",
-  "costs", {"time", 90, "gold", 800, "wood", 100},
-  "speed", 13,
-  "hit-points", 90,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {42, 42},
-  "sight-range", 5, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "armor", 4, "basic-damage", 8, "piercing-damage", 4, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 65,
-  "points", 110,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "can-cast-spell", {"spell-holy-vision", "spell-healing", "spell-exorcism"},
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-paladin", { Name = "Paladin",
+  Use = "unit-knight",
+  Size = {72, 72},
+  Animations = "animations-knight", Icon = "icon-paladin",
+  Costs = {"time", 90, "gold", 800, "wood", 100},
+  Speed = 13,
+  HitPoints = 90,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {42, 42},
+  SightRange = 5, ComputerReactionRange = 7, PersonReactionRange = 5,
+  Armor = 4, BasicDamage = 8, PiercingDamage = 4, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 65,
+  Points = 110,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  CanCastSpell = {"spell-holy-vision", "spell-healing", "spell-exorcism"},
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "paladin-selected",
     "acknowledge", "paladin-acknowledge",
     "ready", "paladin-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "paladin-attack"})
+    "attack", "paladin-attack"} } )
 
-DefineUnitType("unit-dwarves", "name", "Dwarves",
-  "files", {"tileset-summer", "human/units/dwarven_demolition_squad.png"},
-  "size", {56, 56},
-  "animations", "animations-dwarves", "icon", "icon-dwarves",
-  "costs", {"time", 200, "gold", 700, "wood", 250},
-  "speed", 11,
-  "hit-points", 40,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {32, 32},
-  "sight-range", 4, "computer-reaction-range", 4, "person-reaction-range", 2,
-  "basic-damage", 4, "piercing-damage", 2, "missile", "missile-none",
-  "max-attack-range", 1,
-  "priority", 55,
-  "points", 100,
-  "demand", 1,
-  "type-land",
-  "right-spell-cast",
-  "can-cast-spell", {"spell-suicide-bomber"},
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "volatile",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-dwarves", { Name = "Dwarves",
+  Files = {"tileset-summer", "human/units/dwarven_demolition_squad.png"},
+  Size = {56, 56},
+  Animations = "animations-dwarves", Icon = "icon-dwarves",
+  Costs = {"time", 200, "gold", 700, "wood", 250},
+  Speed = 11,
+  HitPoints = 40,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {32, 32},
+  SightRange = 4, ComputerReactionRange = 4, PersonReactionRange = 2,
+  BasicDamage = 4, PiercingDamage = 2, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 55,
+  Points = 100,
+  Demand = 1,
+  Type = "land",
+  RightMouseAction = "spell-cast",
+  CanCastSpell = {"spell-suicide-bomber"},
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  volatile = True,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "dwarves-selected",
     "acknowledge", "dwarves-acknowledge",
     "ready", "dwarves-ready",
     "help", "basic human voices help 1",
     "dead", "explosion",
-    "attack", "dwarves-attack"})
+    "attack", "dwarves-attack"} } )
 
-DefineUnitType("unit-ranger", "name", "Ranger",
-  "use", "unit-archer",
-  "size", {72, 72},
-  "animations", "animations-archer", "icon", "icon-ranger",
-  "costs", {"time", 70, "gold", 500, "wood", 50},
-  "speed", 10,
-  "hit-points", 50,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {33, 33},
-  "sight-range", 6, "computer-reaction-range", 9, "person-reaction-range", 6,
-  "basic-damage", 3, "piercing-damage", 6, "missile", "missile-arrow",
-  "max-attack-range", 4,
-  "priority", 57,
-  "points", 70,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-ranger", { Name = "Ranger",
+  Use = "unit-archer",
+  Size = {72, 72},
+  Animations = "animations-archer", Icon = "icon-ranger",
+  Costs = {"time", 70, "gold", 500, "wood", 50},
+  Speed = 10,
+  HitPoints = 50,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {33, 33},
+  SightRange = 6, ComputerReactionRange = 9, PersonReactionRange = 6,
+  BasicDamage = 3, PiercingDamage = 6, Missile = "missile-arrow",
+  MaxAttackRange = 4,
+  Priority = 57,
+  Points = 70,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "ranger-selected",
     "acknowledge", "ranger-acknowledge",
     "ready", "ranger-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "ranger-attack"})
+    "attack", "ranger-attack"} } )
 
-DefineUnitType("unit-female-hero", "name", "Alleria",
-  "use", "unit-archer",
-  "size", {72, 72},
-  "animations", "animations-archer", "icon", "icon-female-hero",
-  "costs", {"time", 70, "gold", 500, "wood", 50},
-  "speed", 10,
-  "hit-points", 120,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {33, 33},
-  "sight-range", 9, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "armor", 5, "basic-damage", 10, "piercing-damage", 18, "missile", 
"missile-arrow",
-  "max-attack-range", 7,
-  "priority", 55,
-  "points", 60,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-female-hero", { Name = "Alleria",
+  Use = "unit-archer",
+  Size = {72, 72},
+  Animations = "animations-archer", Icon = "icon-female-hero",
+  Costs = {"time", 70, "gold", 500, "wood", 50},
+  Speed = 10,
+  HitPoints = 120,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {33, 33},
+  SightRange = 9, ComputerReactionRange = 7, PersonReactionRange = 5,
+  Armor = 5, BasicDamage = 10, PiercingDamage = 18, Missile = "missile-arrow",
+  MaxAttackRange = 7,
+  Priority = 55,
+  Points = 60,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "alleria-selected",
     "acknowledge", "alleria-acknowledge",
     "ready", "alleria-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "alleria-attack"})
+    "attack", "alleria-attack"} } )
 
-DefineUnitType("unit-flying-angle", "name", "Kurdan and Sky'ree",
-  "files", {"tileset-summer", "human/units/gryphon_rider.png"},
-  "size", {80, 80},
-  "draw-level", 45,
-  "animations", "animations-kurdan-and-sky-ree", "icon", "icon-flying-angle",
-  "costs", {"time", 250, "gold", 2500},
-  "speed", 14,
-  "hit-points", 250,
-  "draw-level", 60,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 9, "computer-reaction-range", 8, "person-reaction-range", 6,
-  "armor", 6, "basic-damage", 0, "piercing-damage", 25, "missile", 
"missile-griffon-hammer",
-  "max-attack-range", 5,
-  "priority", 65,
-  "points", 150,
-  "demand", 1,
-  "type-fly",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "air-unit",
-  "detect-cloak",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-flying-angle", { Name = "Kurdan and Sky'ree",
+  Files = {"tileset-summer", "human/units/gryphon_rider.png"},
+  Size = {80, 80},
+  DrawLevel = 45,
+  Animations = "animations-kurdan-and-sky-ree", Icon = "icon-flying-angle",
+  Costs = {"time", 250, "gold", 2500},
+  Speed = 14,
+  HitPoints = 250,
+  DrawLevel = 60,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 9, ComputerReactionRange = 8, PersonReactionRange = 6,
+  Armor = 6, BasicDamage = 0, PiercingDamage = 25, Missile = 
"missile-griffon-hammer",
+  MaxAttackRange = 5,
+  Priority = 65,
+  Points = 150,
+  Demand = 1,
+  Type = "fly",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  AirUnit = true,
+  DetectCloak = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "kurdan-and-sky-ree-selected",
     "acknowledge", "kurdan-and-sky-ree-acknowledge",
     "ready", "kurdan-and-sky-ree-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "kurdan-and-sky-ree-attack"})
+    "attack", "kurdan-and-sky-ree-attack"} } )
 
-DefineUnitType("unit-white-mage", "name", "Khadgar",
-  "use", "unit-mage",
-  "size", {72, 72},
-  "animations", "animations-mage", "icon", "icon-white-mage",
-  "costs", {"time", 120, "gold", 1200},
-  "speed", 8,
-  "hit-points", 120,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {33, 33},
-  "sight-range", 9, "computer-reaction-range", 11, "person-reaction-range", 9,
-  "armor", 3, "basic-damage", 0, "piercing-damage", 16, "missile", 
"missile-lightning",
-  "max-attack-range", 6,
-  "priority", 70,
-  "points", 100,
-  "demand", 1,
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "can-cast-spell", {
+DefineUnitType("unit-white-mage", { Name = "Khadgar",
+  Use = "unit-mage",
+  Size = {72, 72},
+  Animations = "animations-mage", Icon = "icon-white-mage",
+  Costs = {"time", 120, "gold", 1200},
+  Speed = 8,
+  HitPoints = 120,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {33, 33},
+  SightRange = 9, ComputerReactionRange = 11, PersonReactionRange = 9,
+  Armor = 3, BasicDamage = 0, PiercingDamage = 16, Missile = 
"missile-lightning",
+  MaxAttackRange = 6,
+  Priority = 70,
+  Points = 100,
+  Demand = 1,
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  CanCastSpell = {
       "spell-fireball",
       "spell-slow",
       "spell-flame-shield",
       "spell-invisibility",
       "spell-polymorph",
       "spell-blizzard"},
-  "land-unit",
-  "coward",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+  LandUnit = true,
+  Coward = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "khadgar-selected",
     "acknowledge", "khadgar-acknowledge",
     "ready", "khadgar-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "khadgar-attack"})
+    "attack", "khadgar-attack"} } )
 
-DefineUnitType("unit-human-oil-tanker", "name", "Oil tanker",
-  "files", {"tileset-summer", "human/units/oil_tanker_empty.png"},
-  "size", {72, 72},
-  "animations", "animations-human-oil-tanker", "icon", 
"icon-alliance-oil-tanker",
-  "costs", {"time", 50, "gold", 400, "wood", 200},
-  "speed", 10,
-  "hit-points", 90,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 4,
-  "armor", 10, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 50, "annoy-computer-factor", 10,
-  "points", 40,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 12},
-  "type-naval",
-  "right-harvest",
-  "sea-unit", "coward",
-  "can-gather-resource", {
+DefineUnitType("unit-human-oil-tanker", { Name = "Oil tanker",
+  Files = {"tileset-summer", "human/units/oil_tanker_empty.png"},
+  Size = {72, 72},
+  Animations = "animations-human-oil-tanker", Icon = 
"icon-alliance-oil-tanker",
+  Costs = {"time", 50, "gold", 400, "wood", 200},
+  Speed = 10,
+  HitPoints = 90,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 4,
+  Armor = 10, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 50, AnnoyComputerFactor = 10,
+  Points = 40,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 12},
+  Type = "naval",
+  RightMouseAction = "harvest",
+  SeaUnit = true, Coward = true,
+  CanGatherResource = {
     "file-when-empty", "human/units/oil_tanker_empty.png",
     "file-when-loaded", "human/units/oil_tanker_full.png",
     "resource-id", "oil",
     "resource-capacity", 100,
     "wait-at-resource", 100,
     "wait-at-depot", 100},
-  "selectable-by-rectangle",
-  "sounds", {
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "human-oil-tanker-selected",
     "acknowledge", "human-oil-tanker-acknowledge",
     "ready", "human-oil-tanker-ready",
     "help", "basic human voices help 1",
     "dead", "ship sinking",
-    "attack", "human-oil-tanker-attack"})
+    "attack", "human-oil-tanker-attack"} } )
 
-DefineUnitType("unit-alliance-transport", "name", "Transport",
-  "files", {"tileset-summer", "human/units/transport.png"},
-  "size", {72, 72},
-  "animations", "animations-human-transport", "icon", 
"icon-alliance-transport",
-  "costs", {"time", 70, "gold", 600, "wood", 200, "oil", 500},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "speed", 10,
-  "hit-points", 150,
-  "draw-level", 40,
-  "max-on-board", 6,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 4,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "max-attack-range", 1,
-  "priority", 70, "annoy-computer-factor", 15,
-  "points", 50,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 12},
-  "type-naval",
-  "right-sail",
-  "sea-unit",
-  "transporter",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-alliance-transport", { Name = "Transport",
+  Files = {"tileset-summer", "human/units/transport.png"},
+  Size = {72, 72},
+  Animations = "animations-human-transport", Icon = "icon-alliance-transport",
+  Costs = {"time", 70, "gold", 600, "wood", 200, "oil", 500},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  Speed = 10,
+  HitPoints = 150,
+  DrawLevel = 40,
+  MaxOnBoard = 6,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 4,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 70, AnnoyComputerFactor = 15,
+  Points = 50,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 12},
+  Type = "naval",
+  RightMouseAction = "sail",
+  SeaUnit = true,
+  Transporter = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "human-transport-selected",
     "acknowledge", "human-transport-acknowledge",
     "ready", "human-transport-ready",
     "help", "basic human voices help 1",
     "dead", "ship sinking",
-    "attack", "human-transport-attack"})
+    "attack", "human-transport-attack"} } )
 
-DefineUnitType("unit-alliance-destroyer", "name", "Elven Destroyer",
-  "files", {"tileset-summer", "human/units/elven_destroyer.png"},
-  "size", {80, 88},
-  "animations", "animations-elven-destroyer", "icon", 
"icon-alliance-destroyer",
-  "costs", {"time", 90, "gold", 700, "wood", 350, "oil", 700},
-  "speed", 10,
-  "hit-points", 100,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 8, "computer-reaction-range", 10, "person-reaction-range", 8,
-  "armor", 10, "basic-damage", 35, "piercing-damage", 0, "missile", 
"missile-small-cannon",
-  "max-attack-range", 4,
-  "priority", 65, "annoy-computer-factor", 20,
-  "points", 150,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 12},
-  "type-naval",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "sea-unit",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-alliance-destroyer", { Name = "Elven Destroyer",
+  Files = {"tileset-summer", "human/units/elven_destroyer.png"},
+  Size = {80, 88},
+  Animations = "animations-elven-destroyer", Icon = "icon-alliance-destroyer",
+  Costs = {"time", 90, "gold", 700, "wood", 350, "oil", 700},
+  Speed = 10,
+  HitPoints = 100,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 8, ComputerReactionRange = 10, PersonReactionRange = 8,
+  Armor = 10, BasicDamage = 35, PiercingDamage = 0, Missile = 
"missile-small-cannon",
+  MaxAttackRange = 4,
+  Priority = 65, AnnoyComputerFactor = 20,
+  Points = 150,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 12},
+  Type = "naval",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  SeaUnit = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "elven-destroyer-selected",
     "acknowledge", "elven-destroyer-acknowledge",
     "ready", "elven-destroyer-ready",
     "help", "basic human voices help 1",
     "dead", "ship sinking",
-    "attack", "elven-destroyer-attack"})
+    "attack", "elven-destroyer-attack"} } )
 
-DefineUnitType("unit-battleship", "name", "Battleship",
-  "files", {"tileset-summer", "human/units/battleship.png"},
-  "size", {88, 88},
-  "animations", "animations-battleship", "icon", "icon-battleship",
-  "costs", {"time", 140, "gold", 1000, "wood", 500, "oil", 1000},
-  "speed", 6,
-  "hit-points", 150,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {70, 70},
-  "sight-range", 8, "computer-reaction-range", 10, "person-reaction-range", 8,
-  "armor", 15, "basic-damage", 130, "piercing-damage", 0, "missile", 
"missile-big-cannon",
-  "max-attack-range", 6,
-  "priority", 63, "annoy-computer-factor", 25,
-  "points", 300,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 12},
-  "type-naval",
-  "right-attack",
-  "can-ground-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea",
-  "sea-unit",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-battleship", { Name = "Battleship",
+  Files = {"tileset-summer", "human/units/battleship.png"},
+  Size = {88, 88},
+  Animations = "animations-battleship", Icon = "icon-battleship",
+  Costs = {"time", 140, "gold", 1000, "wood", 500, "oil", 1000},
+  Speed = 6,
+  HitPoints = 150,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {70, 70},
+  SightRange = 8, ComputerReactionRange = 10, PersonReactionRange = 8,
+  Armor = 15, BasicDamage = 130, PiercingDamage = 0, Missile = 
"missile-big-cannon",
+  MaxAttackRange = 6,
+  Priority = 63, AnnoyComputerFactor = 25,
+  Points = 300,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 12},
+  Type = "naval",
+  RightMouseAction = "attack",
+  CanGroundAttack = true,
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true,
+  SeaUnit = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "battleship-selected",
     "acknowledge", "battleship-acknowledge",
     "ready", "battleship-ready",
     "help", "basic human voices help 1",
     "dead", "ship sinking",
-    "attack", "battleship-attack"})
+    "attack", "battleship-attack"} } )
 
-DefineUnitType("unit-alliance-submarine", "name", "Gnomish Submarine",
-  "files", {"tileset-summer", "human/units/gnomish_submarine.png",
+DefineUnitType("unit-alliance-submarine", { Name = "Gnomish Submarine",
+  Files = {"tileset-summer", "human/units/gnomish_submarine.png",
     "tileset-wasteland", 
"tilesets/wasteland/human/units/gnomish_submarine.png",
     "tileset-swamp", "tilesets/swamp/human/units/gnomish_submarine.png"},
-  "size", {72, 72},
-  "animations", "animations-gnomish-submarine", "icon", 
"icon-gnomish-submarine",
-  "costs", {"time", 100, "gold", 800, "wood", 150, "oil", 900},
-  "speed", 7,
-  "hit-points", 60,
-  "draw-level", 35,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 5, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "basic-damage", 50, "piercing-damage", 0, "missile", 
"missile-submarine-missile",
-  "max-attack-range", 4,
-  "priority", 60, "annoy-computer-factor", 20,
-  "points", 120,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 12},
-  "type-naval",
-  "right-attack",
-  "can-attack",
-  "can-target-sea",
-  "sea-unit",
-  "permanent-cloak",
-  "detect-cloak",
-  "selectable-by-rectangle",
-  "sounds", {
+  Size = {72, 72},
+  Animations = "animations-gnomish-submarine", Icon = "icon-gnomish-submarine",
+  Costs = {"time", 100, "gold", 800, "wood", 150, "oil", 900},
+  Speed = 7,
+  HitPoints = 60,
+  DrawLevel = 35,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 5, ComputerReactionRange = 7, PersonReactionRange = 5,
+  BasicDamage = 50, PiercingDamage = 0, Missile = "missile-submarine-missile",
+  MaxAttackRange = 4,
+  Priority = 60, AnnoyComputerFactor = 20,
+  Points = 120,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 12},
+  Type = "naval",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetSea = true,
+  SeaUnit = true,
+  PermanentCloak = true,
+  DetectCloak = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "gnomish-submarine-selected",
     "acknowledge", "gnomish-submarine-acknowledge",
     "ready", "gnomish-submarine-ready",
     "help", "basic human voices help 1",
     "dead", "ship sinking",
-    "attack", "gnomish-submarine-attack"})
+    "attack", "gnomish-submarine-attack"} } )
 
-DefineUnitType("unit-balloon", "name", "Gnomish Flying Machine",
-  "files", {"tileset-summer", "human/units/gnomish_flying_machine.png"},
-  "size", {80, 80},
-  "animations", "animations-gnomish-flying-machine", "icon", 
"icon-gnomish-flying-machine",
-  "costs", {"time", 65, "gold", 500, "wood", 100},
-  "speed", 17,
-  "hit-points", 150,
-  "draw-level", 60,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 9, "computer-reaction-range", 19, "person-reaction-range", 15,
-  "armor", 2, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 40,
-  "points", 40,
-  "demand", 1,
-  "type-fly",
-  "right-move",
-  "air-unit", "coward",
-  "detect-cloak",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-balloon", { Name = "Gnomish Flying Machine",
+  Files = {"tileset-summer", "human/units/gnomish_flying_machine.png"},
+  Size = {80, 80},
+  Animations = "animations-gnomish-flying-machine", Icon = 
"icon-gnomish-flying-machine",
+  Costs = {"time", 65, "gold", 500, "wood", 100},
+  Speed = 17,
+  HitPoints = 150,
+  DrawLevel = 60,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 9, ComputerReactionRange = 19, PersonReactionRange = 15,
+  Armor = 2, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 40,
+  Points = 40,
+  Demand = 1,
+  Type = "fly",
+  RightMouseAction = "move",
+  AirUnit = true, Coward = true,
+  DetectCloak = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "gnomish-flying-machine-selected",
     "acknowledge", "gnomish-flying-machine-acknowledge",
     "ready", "gnomish-flying-machine-ready",
     "help", "basic human voices help 1",
     "dead", "explosion",
-    "attack", "gnomish-flying-machine-attack"})
+    "attack", "gnomish-flying-machine-attack"} } )
 
-DefineUnitType("unit-gryphon-rider", "name", "Gryphon Rider",
-  "use", "unit-flying-angle",
-  "size", {80, 80},
-  "draw-level", 45,
-  "animations", "animations-kurdan-and-sky-ree", "icon", "icon-gryphon-rider",
-  "costs", {"time", 250, "gold", 2500},
-  "speed", 14,
-  "hit-points", 100,
-  "draw-level", 60,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 6, "computer-reaction-range", 8, "person-reaction-range", 6,
-  "armor", 5, "basic-damage", 0, "piercing-damage", 16, "missile", 
"missile-griffon-hammer",
-  "max-attack-range", 4,
-  "priority", 65,
-  "points", 150,
-  "demand", 1,
-  "type-fly",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "air-unit",
-  "detect-cloak",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-gryphon-rider", { Name = "Gryphon Rider",
+  Use = "unit-flying-angle",
+  Size = {80, 80},
+  DrawLevel = 45,
+  Animations = "animations-kurdan-and-sky-ree", Icon = "icon-gryphon-rider",
+  Costs = {"time", 250, "gold", 2500},
+  Speed = 14,
+  HitPoints = 100,
+  DrawLevel = 60,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 6, ComputerReactionRange = 8, PersonReactionRange = 6,
+  Armor = 5, BasicDamage = 0, PiercingDamage = 16, Missile = 
"missile-griffon-hammer",
+  MaxAttackRange = 4,
+  Priority = 65,
+  Points = 150,
+  Demand = 1,
+  Type = "fly",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  AirUnit = true,
+  DetectCloak = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "gryphon-rider-selected",
     "acknowledge", "gryphon-rider-acknowledge",
     "ready", "gryphon-rider-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "gryphon-rider-attack"})
+    "attack", "gryphon-rider-attack"} } )
 
-DefineUnitType("unit-knight-rider", "name", "Turalyon",
-  "use", "unit-knight",
-  "size", {72, 72},
-  "animations", "animations-knight", "icon", "icon-knight-rider",
-  "costs", {"time", 90, "gold", 800, "wood", 100},
-  "speed", 13,
-  "hit-points", 180,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {42, 42},
-  "sight-range", 6, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "armor", 10, "basic-damage", 14, "piercing-damage", 5, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 65,
-  "points", 110,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "can-cast-spell", {"spell-holy-vision", "spell-healing", "spell-exorcism"},
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-knight-rider", { Name = "Turalyon",
+  Use = "unit-knight",
+  Size = {72, 72},
+  Animations = "animations-knight", Icon = "icon-knight-rider",
+  Costs = {"time", 90, "gold", 800, "wood", 100},
+  Speed = 13,
+  HitPoints = 180,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {42, 42},
+  SightRange = 6, ComputerReactionRange = 7, PersonReactionRange = 5,
+  Armor = 10, BasicDamage = 14, PiercingDamage = 5, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 65,
+  Points = 110,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  CanCastSpell = {"spell-holy-vision", "spell-healing", "spell-exorcism"},
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "turalyon-selected",
     "acknowledge", "turalyon-acknowledge",
     "ready", "turalyon-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "turalyon-attack"})
+    "attack", "turalyon-attack"} } )
 
-DefineUnitType("unit-arthor-literios", "name", "Danath",
-  "use", "unit-footman",
-  "size", {72, 72},
-  "animations", "animations-footman", "icon", "icon-ugly-guy",
-  "costs", {"time", 60, "gold", 600},
-  "speed", 10,
-  "hit-points", 220,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 6, "computer-reaction-range", 6, "person-reaction-range", 4,
-  "armor", 8, "basic-damage", 15, "piercing-damage", 8, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 60,
-  "points", 50,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-arthor-literios", { Name = "Danath",
+  Use = "unit-footman",
+  Size = {72, 72},
+  Animations = "animations-footman", Icon = "icon-ugly-guy",
+  Costs = {"time", 60, "gold", 600},
+  Speed = 10,
+  HitPoints = 220,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 6, ComputerReactionRange = 6, PersonReactionRange = 4,
+  Armor = 8, BasicDamage = 15, PiercingDamage = 8, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 60,
+  Points = 50,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "danath-selected",
     "acknowledge", "danath-acknowledge",
     "ready", "danath-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "danath-attack"})
+    "attack", "danath-attack"} } )
 
-DefineUnitType("unit-wise-man", "name", "Lothar",
-  "use", "unit-knight",
-  "size", {72, 72},
-  "animations", "animations-knight", "icon", "icon-wise-man",
-  "costs", {"time", 100, "gold", 900, "wood", 100},
-  "speed", 13,
-  "hit-points", 90,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {42, 42},
-  "sight-range", 5, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "armor", 4, "basic-damage", 8, "piercing-damage", 4, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 65,
-  "points", 120,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "can-cast-spell", {"spell-holy-vision", "spell-healing", "spell-exorcism"},
-  "hero",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-wise-man", { Name = "Lothar",
+  Use = "unit-knight",
+  Size = {72, 72},
+  Animations = "animations-knight", Icon = "icon-wise-man",
+  Costs = {"time", 100, "gold", 900, "wood", 100},
+  Speed = 13,
+  HitPoints = 90,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {42, 42},
+  SightRange = 5, ComputerReactionRange = 7, PersonReactionRange = 5,
+  Armor = 4, BasicDamage = 8, PiercingDamage = 4, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 65,
+  Points = 120,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  CanCastSpell = {"spell-holy-vision", "spell-healing", "spell-exorcism"},
+  hero = True,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "lothar-selected",
     "acknowledge", "lothar-acknowledge",
     "ready", "lothar-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "lothar-attack"})
+    "attack", "lothar-attack"} } )
 
-DefineUnitType("unit-man-of-light", "name", "Uther Lightbringer",
-  "use", "unit-knight",
-  "size", {72, 72},
-  "animations", "animations-knight", "icon", "icon-man-of-light",
-  "costs", {"time", 100, "gold", 900, "wood", 100},
-  "speed", 13,
-  "hit-points", 90,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {42, 42},
-  "sight-range", 5, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "armor", 4, "basic-damage", 8, "piercing-damage", 4, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 65,
-  "points", 120,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "can-cast-spell", {"spell-holy-vision", "spell-healing", "spell-exorcism"},
-  "land-unit",
-  "hero",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-man-of-light", { Name = "Uther Lightbringer",
+  Use = "unit-knight",
+  Size = {72, 72},
+  Animations = "animations-knight", Icon = "icon-man-of-light",
+  Costs = {"time", 100, "gold", 900, "wood", 100},
+  Speed = 13,
+  HitPoints = 90,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {42, 42},
+  SightRange = 5, ComputerReactionRange = 7, PersonReactionRange = 5,
+  Armor = 4, BasicDamage = 8, PiercingDamage = 4, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 65,
+  Points = 120,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  CanCastSpell = {"spell-holy-vision", "spell-healing", "spell-exorcism"},
+  LandUnit = true,
+  hero = True,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "uther-lightbringer-selected",
     "acknowledge", "uther-lightbringer-acknowledge",
     "ready", "uther-lightbringer-ready",
     "help", "basic human voices help 1",
     "dead", "basic human voices dead",
-    "attack", "uther-lightbringer-attack"})
+    "attack", "uther-lightbringer-attack"} } )
 
-DefineUnitType("unit-farm", "name", "Farm",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/farm.png",
+DefineUnitType("unit-farm", { Name = "Farm",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/farm.png",
     "tileset-winter", "tilesets/winter/human/buildings/farm.png",
     "tileset-wasteland", "tilesets/wasteland/human/buildings/farm.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/farm.png"},
-  "size", {64, 64},
-  "animations", "animations-building", "icon", "icon-farm",
-  "costs", {"time", 100, "gold", 500, "wood", 250},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 400,
-  "draw-level", 20,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 20, "annoy-computer-factor", 45,
-  "points", 100,
-  "supply", 4,
-  "corpse", {"unit-destroyed-2x2-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {64, 64},
+  Animations = "animations-building", Icon = "icon-farm",
+  Costs = {"time", 100, "gold", 500, "wood", 250},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 400,
+  DrawLevel = 20,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 20, AnnoyComputerFactor = 45,
+  Points = 100,
+  Supply = 4,
+  Corpse = {"unit-destroyed-2x2-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "farm-selected",
     "acknowledge", "farm-acknowledge",
     "ready", "farm-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "farm-attack"})
+    "attack", "farm-attack"} } )
 
-DefineUnitType("unit-alliance-barracks", "name", "Barracks",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/barracks.png",
+DefineUnitType("unit-alliance-barracks", { Name = "Barracks",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/barracks.png",
     "tileset-winter", "tilesets/winter/human/buildings/barracks.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/barracks.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-alliance-barracks",
-  "costs", {"time", 200, "gold", 700, "wood", 450},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 800,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 30, "annoy-computer-factor", 35,
-  "points", 160,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-alliance-barracks",
+  Costs = {"time", 200, "gold", 700, "wood", 450},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 800,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 30, AnnoyComputerFactor = 35,
+  Points = 160,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "human-barracks-selected",
     "acknowledge", "human-barracks-acknowledge",
     "ready", "human-barracks-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-barracks-attack"})
+    "attack", "human-barracks-attack"} } )
 
-DefineUnitType("unit-church", "name", "Church",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/church.png",
+DefineUnitType("unit-church", { Name = "Church",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/church.png",
     "tileset-winter", "tilesets/winter/human/buildings/church.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/church.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-church",
-  "costs", {"time", 175, "gold", 900, "wood", 500},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 700,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 35,
-  "points", 240,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-church",
+  Costs = {"time", 175, "gold", 900, "wood", 500},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 700,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 35,
+  Points = 240,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "church-selected",
     "acknowledge", "church-acknowledge",
     "ready", "church-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "church-attack"})
+    "attack", "church-attack"} } )
 
-DefineUnitType("unit-alliance-watch-tower", "name", "Scout Tower",
-  "files", {"tileset-summer", 
"tilesets/summer/human/buildings/scout_tower.png",
+DefineUnitType("unit-alliance-watch-tower", { Name = "Scout Tower",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/scout_tower.png",
     "tileset-winter", "tilesets/winter/human/buildings/scout_tower.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/scout_tower.png"},
-  "size", {64, 64},
-  "animations", "animations-building", "icon", "icon-alliance-watch-tower",
-  "costs", {"time", 60, "gold", 550, "wood", 200},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 100,
-  "draw-level", 20,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 9,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 55, "annoy-computer-factor", 50,
-  "points", 95,
-  "corpse", {"unit-destroyed-2x2-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "building", "visible-under-fog", 
-  "detect-cloak",
-  "sounds", {
+  Size = {64, 64},
+  Animations = "animations-building", Icon = "icon-alliance-watch-tower",
+  Costs = {"time", 60, "gold", 550, "wood", 200},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 100,
+  DrawLevel = 20,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 9,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 55, AnnoyComputerFactor = 50,
+  Points = 95,
+  Corpse = {"unit-destroyed-2x2-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  Building = true, VisibleUnderFog = true, 
+  DetectCloak = true,
+  Sounds = {
     "selected", "human-watch-tower-selected",
     "acknowledge", "human-watch-tower-acknowledge",
     "ready", "human-watch-tower-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-watch-tower-attack"})
+    "attack", "human-watch-tower-attack"} } )
 
-DefineUnitType("unit-stables", "name", "Stables",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/stables.png",
+DefineUnitType("unit-stables", { Name = "Stables",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/stables.png",
     "tileset-winter", "tilesets/winter/human/buildings/stables.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/stables.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-stables",
-  "costs", {"time", 150, "gold", 1000, "wood", 300},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 500,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 15,
-  "points", 210,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-stables",
+  Costs = {"time", 150, "gold", 1000, "wood", 300},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 500,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 15,
+  Points = 210,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "stables-selected",
     "acknowledge", "stables-acknowledge",
     "ready", "stables-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "stables-attack"})
+    "attack", "stables-attack"} } )
 
-DefineUnitType("unit-inventor", "name", "Gnomish Inventor",
-  "files", {"tileset-summer", 
"tilesets/summer/human/buildings/gnomish_inventor.png",
+DefineUnitType("unit-inventor", { Name = "Gnomish Inventor",
+  Files = {"tileset-summer", 
"tilesets/summer/human/buildings/gnomish_inventor.png",
     "tileset-winter", "tilesets/winter/human/buildings/gnomish_inventor.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/gnomish_inventor.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-gnomish-inventor",
-  "costs", {"time", 150, "gold", 1000, "wood", 400},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 500,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 20,
-  "points", 230,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-gnomish-inventor",
+  Costs = {"time", 150, "gold", 1000, "wood", 400},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 500,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 20,
+  Points = 230,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "gnomish-inventor-selected",
     "acknowledge", "gnomish-inventor-acknowledge",
     "ready", "gnomish-inventor-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "gnomish-inventor-attack"})
+    "attack", "gnomish-inventor-attack"} } )
 
-DefineUnitType("unit-gryphon-aviary", "name", "Gryphon Aviary",
-  "files", {"tileset-summer", 
"tilesets/summer/human/buildings/gryphon_aviary.png",
+DefineUnitType("unit-gryphon-aviary", { Name = "Gryphon Aviary",
+  Files = {"tileset-summer", 
"tilesets/summer/human/buildings/gryphon_aviary.png",
     "tileset-winter", "tilesets/winter/human/buildings/gryphon_aviary.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/gryphon_aviary.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-gryphon-aviary",
-  "costs", {"time", 150, "gold", 1000, "wood", 400},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 500,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 20,
-  "points", 280,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-gryphon-aviary",
+  Costs = {"time", 150, "gold", 1000, "wood", 400},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 500,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 20,
+  Points = 280,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "gryphon-aviary-selected",
     "acknowledge", "gryphon-aviary-acknowledge",
     "ready", "gryphon-aviary-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "gryphon-aviary-attack"})
+    "attack", "gryphon-aviary-attack"} } )
 
-DefineUnitType("unit-alliance-shipyard", "name", "Shipyard",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/shipyard.png",
+DefineUnitType("unit-alliance-shipyard", { Name = "Shipyard",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/shipyard.png",
     "tileset-winter", "tilesets/winter/human/buildings/shipyard.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/shipyard.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-alliance-shipyard",
-  "costs", {"time", 200, "gold", 800, "wood", 450},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-alliance-shipyard",
-  "speed", 0,
-  "hit-points", 1100,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 30, "annoy-computer-factor", 20,
-  "points", 170,
-  "corpse", {"unit-destroyed-3x3-place", 3},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "shore-building",
-  "can-store", {"oil"},
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-alliance-shipyard",
+  Costs = {"time", 200, "gold", 800, "wood", 450},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-alliance-shipyard",
+  Speed = 0,
+  HitPoints = 1100,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 30, AnnoyComputerFactor = 20,
+  Points = 170,
+  Corpse = {"unit-destroyed-3x3-place", 3},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  ShoreBuilding = true,
+  CanStore = {"oil"},
+  Sounds = {
     "selected", "human-shipyard-selected",
     "acknowledge", "human-shipyard-acknowledge",
     "ready", "human-shipyard-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-shipyard-attack"})
+    "attack", "human-shipyard-attack"} } )
 
-DefineUnitType("unit-elven-lumber-mill", "name", "Elven Lumber Mill",
-  "files", {"tileset-summer", 
"tilesets/summer/human/buildings/elven_lumber_mill.png",
+DefineUnitType("unit-elven-lumber-mill", { Name = "Elven Lumber Mill",
+  Files = {"tileset-summer", 
"tilesets/summer/human/buildings/elven_lumber_mill.png",
     "tileset-winter", "tilesets/winter/human/buildings/elven_lumber_mill.png",
     "tileset-wasteland", 
"tilesets/wasteland/human/buildings/elven_lumber_mill.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/elven_lumber_mill.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-elven-lumber-mill",
-  "costs", {"time", 150, "gold", 600, "wood", 450},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "improve-production", {"wood", 25},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 600,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 25, "annoy-computer-factor", 15,
-  "points", 150,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "can-store", {"wood"},
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-elven-lumber-mill",
+  Costs = {"time", 150, "gold", 600, "wood", 450},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  ImproveProduction = {"wood", 25},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 600,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 25, AnnoyComputerFactor = 15,
+  Points = 150,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  CanStore = {"wood"},
+  Sounds = {
     "selected", "elven-lumber-mill-selected",
     "acknowledge", "elven-lumber-mill-acknowledge",
     "ready", "elven-lumber-mill-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "elven-lumber-mill-attack"})
+    "attack", "elven-lumber-mill-attack"} } )
 
-DefineUnitType("unit-alliance-foundry", "name", "Foundry",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/foundry.png",
+DefineUnitType("unit-alliance-foundry", { Name = "Foundry",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/foundry.png",
     "tileset-winter", "tilesets/winter/human/buildings/foundry.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/foundry.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-alliance-foundry",
-  "costs", {"time", 175, "gold", 700, "wood", 400, "oil", 400},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "construction", "construction-alliance-foundry",
-  "speed", 0,
-  "hit-points", 750,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 20,
-  "points", 200,
-  "corpse", {"unit-destroyed-3x3-place", 3},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "shore-building",
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-alliance-foundry",
+  Costs = {"time", 175, "gold", 700, "wood", 400, "oil", 400},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  Construction = "construction-alliance-foundry",
+  Speed = 0,
+  HitPoints = 750,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 20,
+  Points = 200,
+  Corpse = {"unit-destroyed-3x3-place", 3},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  ShoreBuilding = true,
+  Sounds = {
     "selected", "human-foundry-selected",
     "acknowledge", "human-foundry-acknowledge",
     "ready", "human-foundry-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-foundry-attack"})
+    "attack", "human-foundry-attack"} } )
 
-DefineUnitType("unit-town-hall", "name", "Town Hall",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/town_hall.png",
+DefineUnitType("unit-town-hall", { Name = "Town Hall",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/town_hall.png",
     "tileset-winter", "tilesets/winter/human/buildings/town_hall.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/town_hall.png"},
-  "size", {128, 128},
-  "animations", "animations-building", "icon", "icon-town-hall",
-  "costs", {"time", 255, "gold", 1200, "wood", 800},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 1200,
-  "draw-level", 20,
-  "tile-size", {4, 4}, "box-size", {126, 126},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 35, "annoy-computer-factor", 45,
-  "points", 200,
-  "supply", 1,
-  "corpse", {"unit-destroyed-4x4-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "can-store", {"wood", "gold"},
-  "sounds", {
+  Size = {128, 128},
+  Animations = "animations-building", Icon = "icon-town-hall",
+  Costs = {"time", 255, "gold", 1200, "wood", 800},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 1200,
+  DrawLevel = 20,
+  TileSize = {4, 4}, BoxSize = {126, 126},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 35, AnnoyComputerFactor = 45,
+  Points = 200,
+  Supply = 1,
+  Corpse = {"unit-destroyed-4x4-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  CanStore = {"wood", "gold"},
+  Sounds = {
     "selected", "town-hall-selected",
     "acknowledge", "town-hall-acknowledge",
     "ready", "town-hall-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "town-hall-attack"})
+    "attack", "town-hall-attack"} } )
 
-DefineUnitType("unit-mage-tower", "name", "Mage Tower",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/mage_tower.png",
+DefineUnitType("unit-mage-tower", { Name = "Mage Tower",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/mage_tower.png",
     "tileset-winter", "tilesets/winter/human/buildings/mage_tower.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/mage_tower.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-mage-tower",
-  "costs", {"time", 125, "gold", 1000, "wood", 200},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 500,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 35, "annoy-computer-factor", 20,
-  "points", 240,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-mage-tower",
+  Costs = {"time", 125, "gold", 1000, "wood", 200},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 500,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 35, AnnoyComputerFactor = 20,
+  Points = 240,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "mage-tower-selected",
     "acknowledge", "mage-tower-acknowledge",
     "ready", "mage-tower-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "mage-tower-attack"})
+    "attack", "mage-tower-attack"} } )
 
-DefineUnitType("unit-alliance-blacksmith", "name", "Blacksmith",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/blacksmith.png",
+DefineUnitType("unit-alliance-blacksmith", { Name = "Blacksmith",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/blacksmith.png",
     "tileset-winter", "tilesets/winter/human/buildings/blacksmith.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/blacksmith.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-alliance-blacksmith",
-  "costs", {"time", 200, "gold", 800, "wood", 450, "oil", 100},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 775,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 20,
-  "points", 170,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-alliance-blacksmith",
+  Costs = {"time", 200, "gold", 800, "wood", 450, "oil", 100},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 775,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 20,
+  Points = 170,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "human-blacksmith-selected",
     "acknowledge", "human-blacksmith-acknowledge",
     "ready", "human-blacksmith-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-blacksmith-attack"})
+    "attack", "human-blacksmith-attack"} } )
 
-DefineUnitType("unit-human-refinery", "name", "Refinery",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/refinery.png",
+DefineUnitType("unit-human-refinery", { Name = "Refinery",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/refinery.png",
     "tileset-winter", "tilesets/winter/human/buildings/refinery.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/refinery.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-alliance-refinery",
-  "costs", {"time", 225, "gold", 800, "wood", 350, "oil", 200},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "improve-production", {"oil", 25},
-  "construction", "construction-alliance-refinery",
-  "speed", 0,
-  "hit-points", 600,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 25, "annoy-computer-factor", 20,
-  "points", 200,
-  "corpse", {"unit-destroyed-3x3-place", 3},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog",
-  "shore-building",
-  "can-store", {"oil"},
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-alliance-refinery",
+  Costs = {"time", 225, "gold", 800, "wood", 350, "oil", 200},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  ImproveProduction = {"oil", 25},
+  Construction = "construction-alliance-refinery",
+  Speed = 0,
+  HitPoints = 600,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 25, AnnoyComputerFactor = 20,
+  Points = 200,
+  Corpse = {"unit-destroyed-3x3-place", 3},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true,
+  ShoreBuilding = true,
+  CanStore = {"oil"},
+  Sounds = {
     "selected", "human-refinery-selected",
     "acknowledge", "human-refinery-acknowledge",
     "ready", "human-refinery-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-refinery-attack"})
+    "attack", "human-refinery-attack"} } )
 
-DefineUnitType("unit-alliance-oil-platform", "name", "Oil Platform",
-  "files", {"tileset-summer", 
"tilesets/summer/human/buildings/oil_platform.png",
+DefineUnitType("unit-alliance-oil-platform", { Name = "Oil Platform",
+  Files = {"tileset-summer", 
"tilesets/summer/human/buildings/oil_platform.png",
     "tileset-winter", "tilesets/winter/human/buildings/oil_platform.png",
     "tileset-wasteland", "tilesets/wasteland/human/buildings/oil_platform.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/oil_platform.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-alliance-oil-platform",
-  "costs", {"time", 200, "gold", 700, "wood", 450},
-  "construction", "construction-alliance-oil-well",
-  "speed", 0,
-  "hit-points", 650,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 20, "annoy-computer-factor", 20,
-  "points", 160,
-  "corpse", {"unit-destroyed-3x3-place", 3},
-  "explode-when-killed", "missile-explosion",
-  "type-naval",
-  "building", "visible-under-fog", 
-  "must-build-on-top", "unit-oil-patch",
-  "gives-resource", "oil", "can-harvest",
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-alliance-oil-platform",
+  Costs = {"time", 200, "gold", 700, "wood", 450},
+  Construction = "construction-alliance-oil-well",
+  Speed = 0,
+  HitPoints = 650,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 20, AnnoyComputerFactor = 20,
+  Points = 160,
+  Corpse = {"unit-destroyed-3x3-place", 3},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "naval",
+  Building = true, VisibleUnderFog = true, 
+  MustBuildOnTop = "unit-oil-patch",
+  GivesResource = "oil", CanHarvest = true,
+  Sounds = {
     "selected", "human-oil-platform-selected",
     "acknowledge", "human-oil-platform-acknowledge",
     "ready", "human-oil-platform-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-oil-platform-attack"})
+    "attack", "human-oil-platform-attack"} } )
 
-DefineUnitType("unit-keep", "name", "Keep",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/keep.png",
+DefineUnitType("unit-keep", { Name = "Keep",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/keep.png",
     "tileset-winter", "tilesets/winter/human/buildings/keep.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/keep.png"},
-  "size", {128, 128},
-  "animations", "animations-building", "icon", "icon-keep",
-  "costs", {"time", 200, "gold", 2000, "wood", 1000, "oil", 200},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "improve-production", {"gold", 10},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 1400,
-  "draw-level", 20,
-  "tile-size", {4, 4}, "box-size", {127, 127},
-  "sight-range", 3,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 37, "annoy-computer-factor", 40,
-  "points", 600,
-  "supply", 1,
-  "corpse", {"unit-destroyed-4x4-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "can-store", {"gold", "wood"},
-  "sounds", {
+  Size = {128, 128},
+  Animations = "animations-building", Icon = "icon-keep",
+  Costs = {"time", 200, "gold", 2000, "wood", 1000, "oil", 200},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  ImproveProduction = {"gold", 10},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 1400,
+  DrawLevel = 20,
+  TileSize = {4, 4}, BoxSize = {127, 127},
+  SightRange = 3,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 37, AnnoyComputerFactor = 40,
+  Points = 600,
+  Supply = 1,
+  Corpse = {"unit-destroyed-4x4-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  CanStore = {"gold", "wood"},
+  Sounds = {
     "selected", "keep-selected",
     "acknowledge", "keep-acknowledge",
     "ready", "keep-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "keep-attack"})
+    "attack", "keep-attack"} } )
 
-DefineUnitType("unit-castle", "name", "Castle",
-  "files", {"tileset-summer", "tilesets/summer/human/buildings/castle.png",
+DefineUnitType("unit-castle", { Name = "Castle",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/castle.png",
     "tileset-winter", "tilesets/winter/human/buildings/castle.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/castle.png"},
-  "size", {128, 128},
-  "animations", "animations-building", "icon", "icon-castle",
-  "costs", {"time", 200, "gold", 2500, "wood", 1200, "oil", 500},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "improve-production", {"gold", 20},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 1600,
-  "draw-level", 20,
-  "tile-size", {4, 4}, "box-size", {127, 127},
-  "sight-range", 6,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 40, "annoy-computer-factor", 50,
-  "points", 1500,
-  "supply", 1,
-  "corpse", {"unit-destroyed-4x4-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "can-store", {"gold", "wood"},
-  "sounds", {
+  Size = {128, 128},
+  Animations = "animations-building", Icon = "icon-castle",
+  Costs = {"time", 200, "gold", 2500, "wood", 1200, "oil", 500},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  ImproveProduction = {"gold", 20},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 1600,
+  DrawLevel = 20,
+  TileSize = {4, 4}, BoxSize = {127, 127},
+  SightRange = 6,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 40, AnnoyComputerFactor = 50,
+  Points = 1500,
+  Supply = 1,
+  Corpse = {"unit-destroyed-4x4-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  CanStore = {"gold", "wood"},
+  Sounds = {
     "selected", "castle-selected",
     "acknowledge", "castle-acknowledge",
     "ready", "castle-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "castle-attack"})
+    "attack", "castle-attack"} } )
 
-DefineUnitType("unit-alliance-start-location", "name", "Start Location",
-  "files", {"tileset-summer", "human/x_startpoint.png"},
-  "size", {32, 32},
-  "animations", "animations-building", "icon", "icon-cancel",
-  "num-directions", 1,
-  "speed", 0,
-  "hit-points", 0,
-  "draw-level", 0,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 0,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "demand", 0,
-  "type-land",
-  "sounds", {
+DefineUnitType("unit-alliance-start-location", { Name = "Start Location",
+  Files = {"tileset-summer", "human/x_startpoint.png"},
+  Size = {32, 32},
+  Animations = "animations-building", Icon = "icon-cancel",
+  NumDirections = 1,
+  Speed = 0,
+  HitPoints = 0,
+  DrawLevel = 0,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 0,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Demand = 0,
+  Type = "land",
+  Sounds = {
     "selected", "human-start-location-selected",
     "acknowledge", "human-start-location-acknowledge",
     "ready", "human-start-location-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-start-location-attack"})
+    "attack", "human-start-location-attack"} } )
 
-DefineUnitType("unit-alliance-guard-tower", "name", "Guard Tower",
-  "files", {"tileset-summer", 
"tilesets/summer/human/buildings/guard_tower.png",
+DefineUnitType("unit-alliance-guard-tower", { Name = "Guard Tower",
+  Files = {"tileset-summer", "tilesets/summer/human/buildings/guard_tower.png",
     "tileset-winter", "tilesets/winter/human/buildings/guard_tower.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/guard_tower.png"},
-  "size", {64, 64},
-  "animations", "animations-human-guard-tower", "icon", 
"icon-alliance-guard-tower",
-  "costs", {"time", 140, "gold", 500, "wood", 150},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 130,
-  "draw-level", 40,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 9, "computer-reaction-range", 6, "person-reaction-range", 6,
-  "armor", 20, "basic-damage", 4, "piercing-damage", 12, "missile", 
"missile-arrow",
-  "max-attack-range", 6,
-  "priority", 40, "annoy-computer-factor", 50,
-  "points", 200,
-  "corpse", {"unit-destroyed-2x2-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "building", "visible-under-fog", 
-  "detect-cloak",
-  "sounds", {
+  Size = {64, 64},
+  Animations = "animations-human-guard-tower", Icon = 
"icon-alliance-guard-tower",
+  Costs = {"time", 140, "gold", 500, "wood", 150},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 130,
+  DrawLevel = 40,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 9, ComputerReactionRange = 6, PersonReactionRange = 6,
+  Armor = 20, BasicDamage = 4, PiercingDamage = 12, Missile = "missile-arrow",
+  MaxAttackRange = 6,
+  Priority = 40, AnnoyComputerFactor = 50,
+  Points = 200,
+  Corpse = {"unit-destroyed-2x2-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  Building = true, VisibleUnderFog = true, 
+  DetectCloak = true,
+  Sounds = {
     "selected", "human-guard-tower-selected",
     "acknowledge", "human-guard-tower-acknowledge",
     "ready", "human-guard-tower-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-guard-tower-attack"})
+    "attack", "human-guard-tower-attack"} } )
 
-DefineUnitType("unit-alliance-cannon-tower", "name", "Cannon Tower",
-  "files", {"tileset-summer", 
"tilesets/summer/human/buildings/cannon_tower.png",
+DefineUnitType("unit-alliance-cannon-tower", { Name = "Cannon Tower",
+  Files = {"tileset-summer", 
"tilesets/summer/human/buildings/cannon_tower.png",
     "tileset-winter", "tilesets/winter/human/buildings/cannon_tower.png",
     "tileset-swamp", "tilesets/swamp/human/buildings/cannon_tower.png"},
-  "size", {64, 64},
-  "animations", "animations-human-cannon-tower", "icon", 
"icon-alliance-cannon-tower",
-  "costs", {"time", 190, "gold", 1000, "wood", 300},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 160,
-  "draw-level", 40,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 9, "computer-reaction-range", 7, "person-reaction-range", 7,
-  "armor", 20, "basic-damage", 50, "piercing-damage", 0, "missile", 
"missile-small-cannon",
-  "min-attack-range", 2, "max-attack-range", 7,
-  "priority", 40, "annoy-computer-factor", 50,
-  "points", 250,
-  "corpse", {"unit-destroyed-2x2-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "can-attack",
-  "can-target-land", "can-target-sea",
-  "building", "visible-under-fog", 
-  "detect-cloak",
-  "sounds", {
+  Size = {64, 64},
+  Animations = "animations-human-cannon-tower", Icon = 
"icon-alliance-cannon-tower",
+  Costs = {"time", 190, "gold", 1000, "wood", 300},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 160,
+  DrawLevel = 40,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 9, ComputerReactionRange = 7, PersonReactionRange = 7,
+  Armor = 20, BasicDamage = 50, PiercingDamage = 0, Missile = 
"missile-small-cannon",
+  MinAttackRange = 2, MaxAttackRange = 7,
+  Priority = 40, AnnoyComputerFactor = 50,
+  Points = 250,
+  Corpse = {"unit-destroyed-2x2-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true,
+  Building = true, VisibleUnderFog = true, 
+  DetectCloak = true,
+  Sounds = {
     "selected", "human-cannon-tower-selected",
     "acknowledge", "human-cannon-tower-acknowledge",
     "ready", "human-cannon-tower-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-cannon-tower-attack"})
+    "attack", "human-cannon-tower-attack"} } )
 
-DefineUnitType("unit-human-wall", "name", "Wall",
-  "files", {"tileset-summer", "tilesets/summer/neutral/buildings/wall.png",
+DefineUnitType("unit-human-wall", { Name = "Wall",
+  Files = {"tileset-summer", "tilesets/summer/neutral/buildings/wall.png",
     "tileset-winter", "tilesets/winter/neutral/buildings/wall.png",
     "tileset-wasteland", "tilesets/wasteland/neutral/buildings/wall.png"},
-  "size", {32, 32},
-  "animations", "animations-building", "icon", "icon-alliance-wall",
-  "costs", {"time", 30, "gold", 20, "wood", 10},
-  "construction", "construction-wall",
-  "speed", 0,
-  "hit-points", 40,
-  "draw-level", 39,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 0, "annoy-computer-factor", 45,
-  "points", 1,
-  "corpse", {"unit-destroyed-1x1-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {32, 32},
+  Animations = "animations-building", Icon = "icon-alliance-wall",
+  Costs = {"time", 30, "gold", 20, "wood", 10},
+  Construction = "construction-wall",
+  Speed = 0,
+  HitPoints = 40,
+  DrawLevel = 39,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0, AnnoyComputerFactor = 45,
+  Points = 1,
+  Corpse = {"unit-destroyed-1x1-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "human-wall-selected",
     "acknowledge", "human-wall-acknowledge",
     "ready", "human-wall-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "human-wall-attack"})
+    "attack", "human-wall-attack"} } )
 
 
Index: stratagus/data/ccl/orc/units.lua
diff -u stratagus/data/ccl/orc/units.lua:1.2 
stratagus/data/ccl/orc/units.lua:1.3
--- stratagus/data/ccl/orc/units.lua:1.2        Sun Nov 30 15:43:08 2003
+++ stratagus/data/ccl/orc/units.lua    Tue Dec 16 08:11:13 2003
@@ -26,71 +26,71 @@
 --      along with this program; if not, write to the Free Software
 --      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  
USA
 --
---     $Id: units.lua,v 1.2 2003/11/30 04:43:08 jsalmon3 Exp $
+--     $Id: units.lua,v 1.3 2003/12/15 21:11:13 jsalmon3 Exp $
 
 --=============================================================================
 --     Define unit-types.
 --
-DefineUnitType("unit-grunt", "name", "Grunt",
-  "files", {"tileset-summer", "orc/units/grunt.png"},
-  "size", {72, 72},
-  "animations", "animations-footman", "icon", "icon-grunt",
-  "costs", {"time", 60, "gold", 600},
-  "speed", 10,
-  "hit-points", 60,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 4, "computer-reaction-range", 6, "person-reaction-range", 4,
-  "armor", 2, "basic-damage", 6, "piercing-damage", 3, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 60,
-  "points", 50,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 0},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-grunt", { Name = "Grunt",
+  Files = {"tileset-summer", "orc/units/grunt.png"},
+  Size = {72, 72},
+  Animations = "animations-footman", Icon = "icon-grunt",
+  Costs = {"time", 60, "gold", 600},
+  Speed = 10,
+  HitPoints = 60,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 4, ComputerReactionRange = 6, PersonReactionRange = 4,
+  Armor = 2, BasicDamage = 6, PiercingDamage = 3, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 60,
+  Points = 50,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 0},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "grunt-selected",
     "acknowledge", "grunt-acknowledge",
     "ready", "grunt-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "grunt-attack"})
+    "attack", "grunt-attack"} } )
 
-DefineUnitType("unit-peon", "name", "Peon",
-  "files", {"tileset-summer", "orc/units/peon.png"},
-  "size", {72, 72},
-  "animations", "animations-peasant", "icon", "icon-peon",
-  "costs", {"time", 45, "gold", 400},
-  "speed", 10,
-  "hit-points", 30,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 4, "computer-reaction-range", 6, "person-reaction-range", 4,
-  "basic-damage", 3, "piercing-damage", 2, "missile", "missile-none",
-  "max-attack-range", 1,
-  "priority", 50,
-  "points", 30,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 0},
-  "type-land",
-  "right-harvest",
-  "can-attack", "repair-range", 1,
-  "can-target-land",
-  "land-unit",
-  "coward",
-  "can-gather-resource", {
+DefineUnitType("unit-peon", { Name = "Peon",
+  Files = {"tileset-summer", "orc/units/peon.png"},
+  Size = {72, 72},
+  Animations = "animations-peasant", Icon = "icon-peon",
+  Costs = {"time", 45, "gold", 400},
+  Speed = 10,
+  HitPoints = 30,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 4, ComputerReactionRange = 6, PersonReactionRange = 4,
+  BasicDamage = 3, PiercingDamage = 2, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 50,
+  Points = 30,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 0},
+  Type = "land",
+  RightMouseAction = "harvest",
+  CanAttack = true, RepairRange = 1,
+  CanTargetLand = true,
+  LandUnit = true,
+  Coward = true,
+  CanGatherResource = {
     "file-when-loaded", "orc/units/peon_with_gold.png",
     "resource-id", "gold",
     "resource-capacity", 100,
     "wait-at-resource", 150,
     "wait-at-depot", 150},
-  "can-gather-resource", {
+  CanGatherResource = {
     "file-when-loaded", "orc/units/peon_with_wood.png",
     "resource-id", "wood",
     "resource-capacity", 100,
@@ -99,9 +99,9 @@
     "wait-at-depot", 150,
     "lose-resources",
     "terrain-harvester",},
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "peon-selected",
     "acknowledge", "peon-acknowledge",
     "ready", "peon-ready",
@@ -109,1432 +109,1432 @@
     "harvest", "wood", "tree chopping",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "peon-attack"})
+    "attack", "peon-attack"} } )
 
-DefineUnitType("unit-catapult", "name", "Catapult",
-  "files", {"tileset-summer", "orc/units/catapult.png"},
-  "size", {64, 64},
-  "animations", "animations-catapult", "icon", "icon-catapult",
-  "costs", {"time", 250, "gold", 900, "wood", 300},
-  "speed", 5,
-  "hit-points", 110,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 9, "computer-reaction-range", 11, "person-reaction-range", 9,
-  "basic-damage", 80, "piercing-damage", 0, "missile", "missile-catapult-rock",
-  "min-attack-range", 2, "max-attack-range", 8,
-  "priority", 70,
-  "points", 100,
-  "demand", 1,
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "right-attack",
-  "can-ground-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-catapult", { Name = "Catapult",
+  Files = {"tileset-summer", "orc/units/catapult.png"},
+  Size = {64, 64},
+  Animations = "animations-catapult", Icon = "icon-catapult",
+  Costs = {"time", 250, "gold", 900, "wood", 300},
+  Speed = 5,
+  HitPoints = 110,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 9, ComputerReactionRange = 11, PersonReactionRange = 9,
+  BasicDamage = 80, PiercingDamage = 0, Missile = "missile-catapult-rock",
+  MinAttackRange = 2, MaxAttackRange = 8,
+  Priority = 70,
+  Points = 100,
+  Demand = 1,
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  RightMouseAction = "attack",
+  CanGroundAttack = true,
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "catapult-selected",
     "acknowledge", "catapult-acknowledge",
     "ready", "catapult-ready",
     "help", "basic orc voices help 1",
     "dead", "explosion",
-    "attack", "catapult-attack"})
+    "attack", "catapult-attack"} } )
 
-DefineUnitType("unit-ogre", "name", "Ogre",
-  "files", {"tileset-summer", "orc/units/ogre.png"},
-  "size", {72, 72},
-  "animations", "animations-ogre", "icon", "icon-ogre",
-  "costs", {"time", 90, "gold", 800, "wood", 100},
-  "speed", 13,
-  "hit-points", 90,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {42, 42},
-  "sight-range", 4, "computer-reaction-range", 6, "person-reaction-range", 4,
-  "armor", 4, "basic-damage", 8, "piercing-damage", 4, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 63,
-  "points", 100,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 0},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-ogre", { Name = "Ogre",
+  Files = {"tileset-summer", "orc/units/ogre.png"},
+  Size = {72, 72},
+  Animations = "animations-ogre", Icon = "icon-ogre",
+  Costs = {"time", 90, "gold", 800, "wood", 100},
+  Speed = 13,
+  HitPoints = 90,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {42, 42},
+  SightRange = 4, ComputerReactionRange = 6, PersonReactionRange = 4,
+  Armor = 4, BasicDamage = 8, PiercingDamage = 4, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 63,
+  Points = 100,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 0},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "ogre-selected",
     "acknowledge", "ogre-acknowledge",
     "ready", "ogre-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "ogre-attack"})
+    "attack", "ogre-attack"} } )
 
-DefineUnitType("unit-axethrower", "name", "Troll Axethrower",
-  "files", {"tileset-summer", "orc/units/troll_axethrower.png"},
-  "size", {72, 72},
-  "animations", "animations-axethrower", "icon", "icon-axethrower",
-  "costs", {"time", 70, "gold", 500, "wood", 50},
-  "speed", 10,
-  "hit-points", 40,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {36, 36},
-  "sight-range", 5, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "basic-damage", 3, "piercing-damage", 6, "missile", "missile-axe",
-  "max-attack-range", 4,
-  "priority", 55,
-  "points", 60,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 0},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-axethrower", { Name = "Troll Axethrower",
+  Files = {"tileset-summer", "orc/units/troll_axethrower.png"},
+  Size = {72, 72},
+  Animations = "animations-axethrower", Icon = "icon-axethrower",
+  Costs = {"time", 70, "gold", 500, "wood", 50},
+  Speed = 10,
+  HitPoints = 40,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {36, 36},
+  SightRange = 5, ComputerReactionRange = 7, PersonReactionRange = 5,
+  BasicDamage = 3, PiercingDamage = 6, Missile = "missile-axe",
+  MaxAttackRange = 4,
+  Priority = 55,
+  Points = 60,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 0},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "axethrower-selected",
     "acknowledge", "axethrower-acknowledge",
     "ready", "axethrower-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "axethrower-attack"})
+    "attack", "axethrower-attack"} } )
 
-DefineUnitType("unit-death-knight", "name", "Death Knight",
-  "files", {"tileset-summer", "orc/units/death_knight.png"},
-  "size", {72, 72},
-  "animations", "animations-death-knight", "icon", "icon-death-knight",
-  "costs", {"time", 120, "gold", 1200},
-  "speed", 8,
-  "hit-points", 60,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {39, 39},
-  "sight-range", 9, "computer-reaction-range", 11, "person-reaction-range", 9,
-  "basic-damage", 0, "piercing-damage", 9, "missile", "missile-touch-of-death",
-  "max-attack-range", 3,
-  "priority", 70,
-  "points", 100,
-  "demand", 1,
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "can-cast-spell", {
+DefineUnitType("unit-death-knight", { Name = "Death Knight",
+  Files = {"tileset-summer", "orc/units/death_knight.png"},
+  Size = {72, 72},
+  Animations = "animations-death-knight", Icon = "icon-death-knight",
+  Costs = {"time", 120, "gold", 1200},
+  Speed = 8,
+  HitPoints = 60,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {39, 39},
+  SightRange = 9, ComputerReactionRange = 11, PersonReactionRange = 9,
+  BasicDamage = 0, PiercingDamage = 9, Missile = "missile-touch-of-death",
+  MaxAttackRange = 3,
+  Priority = 70,
+  Points = 100,
+  Demand = 1,
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  CanCastSpell = {
       "spell-death-coil",
       "spell-haste",
       "spell-raise-dead",
       "spell-whirlwind",
       "spell-unholy-armor",
       "spell-death-and-decay"},
-  "land-unit",
-  "coward",
-  "isundead",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+  LandUnit = true,
+  Coward = true,
+  isundead = True,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "death-knight-selected",
     "acknowledge", "death-knight-acknowledge",
     "ready", "death-knight-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "death-knight-attack"})
+    "attack", "death-knight-attack"} } )
 
-DefineUnitType("unit-ogre-mage", "name", "Ogre Mage",
-  "use", "unit-ogre",
-  "size", {72, 72},
-  "animations", "animations-ogre", "icon", "icon-ogre-mage",
-  "costs", {"time", 90, "gold", 800, "wood", 100},
-  "speed", 13,
-  "hit-points", 90,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {42, 42},
-  "sight-range", 5, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "armor", 4, "basic-damage", 8, "piercing-damage", 4, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 65,
-  "points", 110,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 0},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "can-cast-spell", {"spell-eye-of-vision", "spell-runes", "spell-bloodlust"},
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-ogre-mage", { Name = "Ogre Mage",
+  Use = "unit-ogre",
+  Size = {72, 72},
+  Animations = "animations-ogre", Icon = "icon-ogre-mage",
+  Costs = {"time", 90, "gold", 800, "wood", 100},
+  Speed = 13,
+  HitPoints = 90,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {42, 42},
+  SightRange = 5, ComputerReactionRange = 7, PersonReactionRange = 5,
+  Armor = 4, BasicDamage = 8, PiercingDamage = 4, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 65,
+  Points = 110,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 0},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  CanCastSpell = {"spell-eye-of-vision", "spell-runes", "spell-bloodlust"},
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "ogre-mage-selected",
     "acknowledge", "ogre-mage-acknowledge",
     "ready", "ogre-mage-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "ogre-mage-attack"})
+    "attack", "ogre-mage-attack"} } )
 
-DefineUnitType("unit-goblin-sappers", "name", "Goblin Sappers",
-  "files", {"tileset-summer", "orc/units/goblin_sappers.png"},
-  "size", {56, 56},
-  "animations", "animations-goblin-sappers", "icon", "icon-goblin-sappers",
-  "costs", {"time", 200, "gold", 700, "wood", 250},
-  "speed", 11,
-  "hit-points", 40,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {37, 37},
-  "sight-range", 4, "computer-reaction-range", 4, "person-reaction-range", 2,
-  "basic-damage", 4, "piercing-damage", 2, "missile", "missile-none",
-  "max-attack-range", 1,
-  "priority", 55,
-  "points", 100,
-  "demand", 1,
-  "type-land",
-  "right-spell-cast",
-  "can-cast-spell", {"spell-suicide-bomber"},
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "volatile",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-goblin-sappers", { Name = "Goblin Sappers",
+  Files = {"tileset-summer", "orc/units/goblin_sappers.png"},
+  Size = {56, 56},
+  Animations = "animations-goblin-sappers", Icon = "icon-goblin-sappers",
+  Costs = {"time", 200, "gold", 700, "wood", 250},
+  Speed = 11,
+  HitPoints = 40,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {37, 37},
+  SightRange = 4, ComputerReactionRange = 4, PersonReactionRange = 2,
+  BasicDamage = 4, PiercingDamage = 2, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 55,
+  Points = 100,
+  Demand = 1,
+  Type = "land",
+  RightMouseAction = "spell-cast",
+  CanCastSpell = {"spell-suicide-bomber"},
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  volatile = True,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "goblin-sappers-selected",
     "acknowledge", "goblin-sappers-acknowledge",
     "ready", "goblin-sappers-ready",
     "help", "basic orc voices help 1",
     "dead", "explosion",
-    "attack", "goblin-sappers-attack"})
+    "attack", "goblin-sappers-attack"} } )
 
-DefineUnitType("unit-berserker", "name", "Berserker",
-  "use", "unit-axethrower",
-  "size", {72, 72},
-  "animations", "animations-axethrower", "icon", "icon-berserker",
-  "costs", {"time", 70, "gold", 500, "wood", 50},
-  "speed", 10,
-  "hit-points", 50,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {36, 36},
-  "sight-range", 6, "computer-reaction-range", 9, "person-reaction-range", 6,
-  "basic-damage", 3, "piercing-damage", 6, "missile", "missile-axe",
-  "max-attack-range", 4,
-  "priority", 57,
-  "points", 70,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 0},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-berserker", { Name = "Berserker",
+  Use = "unit-axethrower",
+  Size = {72, 72},
+  Animations = "animations-axethrower", Icon = "icon-berserker",
+  Costs = {"time", 70, "gold", 500, "wood", 50},
+  Speed = 10,
+  HitPoints = 50,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {36, 36},
+  SightRange = 6, ComputerReactionRange = 9, PersonReactionRange = 6,
+  BasicDamage = 3, PiercingDamage = 6, Missile = "missile-axe",
+  MaxAttackRange = 4,
+  Priority = 57,
+  Points = 70,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 0},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "berserker-selected",
     "acknowledge", "berserker-acknowledge",
     "ready", "berserker-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "berserker-attack"})
+    "attack", "berserker-attack"} } )
 
-DefineUnitType("unit-evil-knight", "name", "Teron Gorefiend",
-  "use", "unit-death-knight",
-  "size", {72, 72},
-  "animations", "animations-death-knight", "icon", "icon-evil-knight",
-  "costs", {"time", 120, "gold", 1200},
-  "speed", 8,
-  "hit-points", 180,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {39, 39},
-  "sight-range", 9, "computer-reaction-range", 11, "person-reaction-range", 9,
-  "armor", 2, "basic-damage", 0, "piercing-damage", 16, "missile", 
"missile-touch-of-death",
-  "max-attack-range", 4,
-  "priority", 70,
-  "points", 100,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 0},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "land-unit",
-  "coward",
-  "isundead",
-  "organic",
-  "can-cast-spell", {
+DefineUnitType("unit-evil-knight", { Name = "Teron Gorefiend",
+  Use = "unit-death-knight",
+  Size = {72, 72},
+  Animations = "animations-death-knight", Icon = "icon-evil-knight",
+  Costs = {"time", 120, "gold", 1200},
+  Speed = 8,
+  HitPoints = 180,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {39, 39},
+  SightRange = 9, ComputerReactionRange = 11, PersonReactionRange = 9,
+  Armor = 2, BasicDamage = 0, PiercingDamage = 16, Missile = 
"missile-touch-of-death",
+  MaxAttackRange = 4,
+  Priority = 70,
+  Points = 100,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 0},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  LandUnit = true,
+  Coward = true,
+  isundead = True,
+  organic = True,
+  CanCastSpell = {
       "spell-death-coil",
       "spell-haste",
       "spell-raise-dead",
       "spell-whirlwind",
       "spell-unholy-armor",
       "spell-death-and-decay"},
-  "selectable-by-rectangle",
-  "sounds", {
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "teron-gorefiend-selected",
     "acknowledge", "teron-gorefiend-acknowledge",
     "ready", "teron-gorefiend-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "teron-gorefiend-attack"})
+    "attack", "teron-gorefiend-attack"} } )
 
-DefineUnitType("unit-fad-man", "name", "Dentarg",
-  "use", "unit-ogre",
-  "size", {72, 72},
-  "animations", "animations-ogre", "icon", "icon-fad-man",
-  "costs", {"time", 90, "gold", 800, "wood", 100},
-  "speed", 13,
-  "hit-points", 300,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {42, 42},
-  "sight-range", 6, "computer-reaction-range", 6, "person-reaction-range", 4,
-  "armor", 8, "basic-damage", 18, "piercing-damage", 6, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 63,
-  "points", 100,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 0},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "can-cast-spell", {"spell-eye-of-vision", "spell-runes", "spell-bloodlust"},
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-fad-man", { Name = "Dentarg",
+  Use = "unit-ogre",
+  Size = {72, 72},
+  Animations = "animations-ogre", Icon = "icon-fad-man",
+  Costs = {"time", 90, "gold", 800, "wood", 100},
+  Speed = 13,
+  HitPoints = 300,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {42, 42},
+  SightRange = 6, ComputerReactionRange = 6, PersonReactionRange = 4,
+  Armor = 8, BasicDamage = 18, PiercingDamage = 6, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 63,
+  Points = 100,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 0},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  CanCastSpell = {"spell-eye-of-vision", "spell-runes", "spell-bloodlust"},
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "dentarg-selected",
     "acknowledge", "dentarg-acknowledge",
     "ready", "dentarg-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "dentarg-attack"})
+    "attack", "dentarg-attack"} } )
 
-DefineUnitType("unit-beast-cry", "name", "Grom Hellscream",
-  "use", "unit-grunt",
-  "size", {72, 72},
-  "animations", "animations-footman", "icon", "icon-beast-cry",
-  "costs", {"time", 60, "gold", 600},
-  "speed", 10,
-  "hit-points", 240,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 5, "computer-reaction-range", 6, "person-reaction-range", 4,
-  "armor", 8, "basic-damage", 16, "piercing-damage", 6, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 60,
-  "points", 50,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-beast-cry", { Name = "Grom Hellscream",
+  Use = "unit-grunt",
+  Size = {72, 72},
+  Animations = "animations-footman", Icon = "icon-beast-cry",
+  Costs = {"time", 60, "gold", 600},
+  Speed = 10,
+  HitPoints = 240,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 5, ComputerReactionRange = 6, PersonReactionRange = 4,
+  Armor = 8, BasicDamage = 16, PiercingDamage = 6, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 60,
+  Points = 50,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "grom-hellscream-selected",
     "acknowledge", "grom-hellscream-acknowledge",
     "ready", "grom-hellscream-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "grom-hellscream-attack"})
+    "attack", "grom-hellscream-attack"} } )
 
-DefineUnitType("unit-orc-oil-tanker", "name", "Oil tanker",
-  "files", {"tileset-summer", "orc/units/oil_tanker_empty.png"},
-  "size", {72, 72},
-  "animations", "animations-human-oil-tanker", "icon", 
"icon-mythical-oil-tanker",
-  "costs", {"time", 50, "gold", 400, "wood", 200},
-  "speed", 10,
-  "hit-points", 90,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 4,
-  "armor", 10, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 50, "annoy-computer-factor", 10,
-  "points", 40,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 12},
-  "type-naval",
-  "right-harvest",
-  "sea-unit", "coward",
-  "can-gather-resource", {
+DefineUnitType("unit-orc-oil-tanker", { Name = "Oil tanker",
+  Files = {"tileset-summer", "orc/units/oil_tanker_empty.png"},
+  Size = {72, 72},
+  Animations = "animations-human-oil-tanker", Icon = 
"icon-mythical-oil-tanker",
+  Costs = {"time", 50, "gold", 400, "wood", 200},
+  Speed = 10,
+  HitPoints = 90,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 4,
+  Armor = 10, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 50, AnnoyComputerFactor = 10,
+  Points = 40,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 12},
+  Type = "naval",
+  RightMouseAction = "harvest",
+  SeaUnit = true, Coward = true,
+  CanGatherResource = {
     "file-when-empty", "orc/units/oil_tanker_empty.png",
     "file-when-loaded", "orc/units/oil_tanker_full.png",
     "resource-id", "oil",
     "resource-capacity", 100,
     "wait-at-resource", 100,
     "wait-at-depot", 100 },
-  "selectable-by-rectangle",
-  "sounds", {
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "orc-oil-tanker-selected",
     "acknowledge", "orc-oil-tanker-acknowledge",
     "ready", "orc-oil-tanker-ready",
     "help", "basic orc voices help 1",
     "dead", "ship sinking",
-    "attack", "orc-oil-tanker-attack"})
+    "attack", "orc-oil-tanker-attack"} } )
 
-DefineUnitType("unit-mythical-transport", "name", "Transport",
-  "files", {"tileset-summer", "orc/units/transport.png"},
-  "size", {72, 72},
-  "animations", "animations-human-transport", "icon", 
"icon-mythical-transport",
-  "costs", {"time", 70, "gold", 600, "wood", 200, "oil", 500},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "speed", 10,
-  "hit-points", 150,
-  "draw-level", 40,
-  "max-on-board", 6,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 4,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "max-attack-range", 1,
-  "priority", 70, "annoy-computer-factor", 15,
-  "points", 50,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 12},
-  "type-naval",
-  "right-sail",
-  "sea-unit",
-  "transporter",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-mythical-transport", { Name = "Transport",
+  Files = {"tileset-summer", "orc/units/transport.png"},
+  Size = {72, 72},
+  Animations = "animations-human-transport", Icon = "icon-mythical-transport",
+  Costs = {"time", 70, "gold", 600, "wood", 200, "oil", 500},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  Speed = 10,
+  HitPoints = 150,
+  DrawLevel = 40,
+  MaxOnBoard = 6,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 4,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 70, AnnoyComputerFactor = 15,
+  Points = 50,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 12},
+  Type = "naval",
+  RightMouseAction = "sail",
+  SeaUnit = true,
+  Transporter = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "orc-transport-selected",
     "acknowledge", "orc-transport-acknowledge",
     "ready", "orc-transport-ready",
     "help", "basic orc voices help 1",
     "dead", "ship sinking",
-    "attack", "orc-transport-attack"})
+    "attack", "orc-transport-attack"} } )
 
-DefineUnitType("unit-mythical-destroyer", "name", "Troll Destroyer",
-  "files", {"tileset-summer", "orc/units/troll_destroyer.png"},
-  "size", {88, 88},
-  "animations", "animations-elven-destroyer", "icon", 
"icon-mythical-destroyer",
-  "costs", {"time", 90, "gold", 700, "wood", 350, "oil", 700},
-  "speed", 10,
-  "hit-points", 100,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 8, "computer-reaction-range", 10, "person-reaction-range", 8,
-  "armor", 10, "basic-damage", 35, "piercing-damage", 0, "missile", 
"missile-small-cannon",
-  "max-attack-range", 4,
-  "priority", 65, "annoy-computer-factor", 20,
-  "points", 150,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 12},
-  "type-naval",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "sea-unit",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-mythical-destroyer", { Name = "Troll Destroyer",
+  Files = {"tileset-summer", "orc/units/troll_destroyer.png"},
+  Size = {88, 88},
+  Animations = "animations-elven-destroyer", Icon = "icon-mythical-destroyer",
+  Costs = {"time", 90, "gold", 700, "wood", 350, "oil", 700},
+  Speed = 10,
+  HitPoints = 100,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 8, ComputerReactionRange = 10, PersonReactionRange = 8,
+  Armor = 10, BasicDamage = 35, PiercingDamage = 0, Missile = 
"missile-small-cannon",
+  MaxAttackRange = 4,
+  Priority = 65, AnnoyComputerFactor = 20,
+  Points = 150,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 12},
+  Type = "naval",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  SeaUnit = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "troll-destroyer-selected",
     "acknowledge", "troll-destroyer-acknowledge",
     "ready", "troll-destroyer-ready",
     "help", "basic orc voices help 1",
     "dead", "ship sinking",
-    "attack", "troll-destroyer-attack"})
+    "attack", "troll-destroyer-attack"} } )
 
-DefineUnitType("unit-ogre-juggernaught", "name", "Ogre Juggernaught",
-  "files", {"tileset-summer", "orc/units/ogre_juggernaught.png"},
-  "size", {88, 88},
-  "animations", "animations-battleship", "icon", "icon-ogre-juggernaught",
-  "costs", {"time", 140, "gold", 1000, "wood", 500, "oil", 1000},
-  "speed", 6,
-  "hit-points", 150,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {70, 70},
-  "sight-range", 8, "computer-reaction-range", 10, "person-reaction-range", 8,
-  "armor", 15, "basic-damage", 130, "piercing-damage", 0, "missile", 
"missile-big-cannon",
-  "max-attack-range", 6,
-  "priority", 63, "annoy-computer-factor", 25,
-  "points", 300,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 12},
-  "type-naval",
-  "right-attack",
-  "can-ground-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea",
-  "sea-unit",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-ogre-juggernaught", { Name = "Ogre Juggernaught",
+  Files = {"tileset-summer", "orc/units/ogre_juggernaught.png"},
+  Size = {88, 88},
+  Animations = "animations-battleship", Icon = "icon-ogre-juggernaught",
+  Costs = {"time", 140, "gold", 1000, "wood", 500, "oil", 1000},
+  Speed = 6,
+  HitPoints = 150,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {70, 70},
+  SightRange = 8, ComputerReactionRange = 10, PersonReactionRange = 8,
+  Armor = 15, BasicDamage = 130, PiercingDamage = 0, Missile = 
"missile-big-cannon",
+  MaxAttackRange = 6,
+  Priority = 63, AnnoyComputerFactor = 25,
+  Points = 300,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 12},
+  Type = "naval",
+  RightMouseAction = "attack",
+  CanGroundAttack = true,
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true,
+  SeaUnit = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "ogre-juggernaught-selected",
     "acknowledge", "ogre-juggernaught-acknowledge",
     "ready", "ogre-juggernaught-ready",
     "help", "basic orc voices help 1",
     "dead", "ship sinking",
-    "attack", "ogre-juggernaught-attack"})
+    "attack", "ogre-juggernaught-attack"} } )
 
-DefineUnitType("unit-fire-breeze", "name", "Deathwing",
-  "files", {"tileset-summer", "orc/units/dragon.png"},
-  "size", {88, 80},
-  "animations", "animations-deathwing", "icon", "icon-fire-breeze",
-  "costs", {"time", 250, "gold", 2500},
-  "speed", 14,
-  "hit-points", 800,
-  "draw-level", 60,
-  "tile-size", {1, 1}, "box-size", {71, 71},
-  "sight-range", 9, "computer-reaction-range", 8, "person-reaction-range", 6,
-  "armor", 10, "basic-damage", 10, "piercing-damage", 25, "missile", 
"missile-dragon-breath",
-  "max-attack-range", 5,
-  "priority", 65,
-  "points", 150,
-  "demand", 1,
-  "type-fly",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "air-unit",
-  "detect-cloak",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-fire-breeze", { Name = "Deathwing",
+  Files = {"tileset-summer", "orc/units/dragon.png"},
+  Size = {88, 80},
+  Animations = "animations-deathwing", Icon = "icon-fire-breeze",
+  Costs = {"time", 250, "gold", 2500},
+  Speed = 14,
+  HitPoints = 800,
+  DrawLevel = 60,
+  TileSize = {1, 1}, BoxSize = {71, 71},
+  SightRange = 9, ComputerReactionRange = 8, PersonReactionRange = 6,
+  Armor = 10, BasicDamage = 10, PiercingDamage = 25, Missile = 
"missile-dragon-breath",
+  MaxAttackRange = 5,
+  Priority = 65,
+  Points = 150,
+  Demand = 1,
+  Type = "fly",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  AirUnit = true,
+  DetectCloak = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "deathwing-selected",
     "acknowledge", "deathwing-acknowledge",
     "ready", "deathwing-ready",
     "help", "basic orc voices help 1",
     "dead", "explosion",
-    "attack", "deathwing-attack"})
+    "attack", "deathwing-attack"} } )
 
-DefineUnitType("unit-mythical-submarine", "name", "Giant Turtle",
-  "files", {"tileset-summer", "orc/units/giant_turtle.png",
+DefineUnitType("unit-mythical-submarine", { Name = "Giant Turtle",
+  Files = {"tileset-summer", "orc/units/giant_turtle.png",
     "tileset-wasteland", "tilesets/wasteland/orc/units/giant_turtle.png",
     "tileset-swamp", "tilesets/swamp/orc/units/giant_turtle.png"},
-  "size", {72, 72},
-  "animations", "animations-gnomish-submarine", "icon", "icon-giant-turtle",
-  "costs", {"time", 100, "gold", 800, "wood", 150, "oil", 900},
-  "speed", 7,
-  "hit-points", 60,
-  "draw-level", 30,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 5, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "basic-damage", 50, "piercing-damage", 0, "missile", 
"missile-turtle-missile",
-  "max-attack-range", 4,
-  "priority", 60, "annoy-computer-factor", 20,
-  "points", 120,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 12},
-  "type-naval",
-  "right-attack",
-  "can-attack",
-  "can-target-sea",
-  "sea-unit",
-  "permanent-cloak",
-  "detect-cloak",
-  "selectable-by-rectangle",
-  "sounds", {
+  Size = {72, 72},
+  Animations = "animations-gnomish-submarine", Icon = "icon-giant-turtle",
+  Costs = {"time", 100, "gold", 800, "wood", 150, "oil", 900},
+  Speed = 7,
+  HitPoints = 60,
+  DrawLevel = 30,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 5, ComputerReactionRange = 7, PersonReactionRange = 5,
+  BasicDamage = 50, PiercingDamage = 0, Missile = "missile-turtle-missile",
+  MaxAttackRange = 4,
+  Priority = 60, AnnoyComputerFactor = 20,
+  Points = 120,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 12},
+  Type = "naval",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetSea = true,
+  SeaUnit = true,
+  PermanentCloak = true,
+  DetectCloak = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "giant-turtle-selected",
     "acknowledge", "giant-turtle-acknowledge",
     "ready", "giant-turtle-ready",
     "help", "basic orc voices help 1",
     "dead", "ship sinking",
-    "attack", "giant-turtle-attack"})
+    "attack", "giant-turtle-attack"} } )
 
-DefineUnitType("unit-zeppelin", "name", "Goblin Zeppelin",
-  "files", {"tileset-summer", "orc/units/goblin_zeppelin.png"},
-  "size", {72, 72},
-  "animations", "animations-goblin-zeppelin", "icon", "icon-zeppelin",
-  "costs", {"time", 65, "gold", 500, "wood", 100},
-  "speed", 17,
-  "hit-points", 150,
-  "draw-level", 60,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 9, "computer-reaction-range", 19, "person-reaction-range", 15,
-  "armor", 2, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 40,
-  "points", 40,
-  "demand", 1,
-  "type-fly",
-  "right-move",
-  "air-unit", "coward",
-  "detect-cloak",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-zeppelin", { Name = "Goblin Zeppelin",
+  Files = {"tileset-summer", "orc/units/goblin_zeppelin.png"},
+  Size = {72, 72},
+  Animations = "animations-goblin-zeppelin", Icon = "icon-zeppelin",
+  Costs = {"time", 65, "gold", 500, "wood", 100},
+  Speed = 17,
+  HitPoints = 150,
+  DrawLevel = 60,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 9, ComputerReactionRange = 19, PersonReactionRange = 15,
+  Armor = 2, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 40,
+  Points = 40,
+  Demand = 1,
+  Type = "fly",
+  RightMouseAction = "move",
+  AirUnit = true, Coward = true,
+  DetectCloak = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "goblin-zeppelin-selected",
     "acknowledge", "goblin-zeppelin-acknowledge",
     "ready", "goblin-zeppelin-ready",
     "help", "basic orc voices help 1",
     "dead", "explosion",
-    "attack", "goblin-zeppelin-attack"})
+    "attack", "goblin-zeppelin-attack"} } )
 
-DefineUnitType("unit-dragon", "name", "Dragon",
-  "use", "unit-fire-breeze",
-  "size", {88, 80},
-  "animations", "animations-deathwing", "icon", "icon-dragon",
-  "costs", {"time", 250, "gold", 2500},
-  "speed", 14,
-  "hit-points", 100,
-  "draw-level", 60,
-  "tile-size", {1, 1}, "box-size", {71, 71},
-  "sight-range", 6, "computer-reaction-range", 8, "person-reaction-range", 6,
-  "armor", 5, "basic-damage", 0, "piercing-damage", 16, "missile", 
"missile-dragon-breath",
-  "max-attack-range", 4,
-  "priority", 65,
-  "points", 150,
-  "demand", 1,
-  "type-fly",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "air-unit",
-  "detect-cloak",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-dragon", { Name = "Dragon",
+  Use = "unit-fire-breeze",
+  Size = {88, 80},
+  Animations = "animations-deathwing", Icon = "icon-dragon",
+  Costs = {"time", 250, "gold", 2500},
+  Speed = 14,
+  HitPoints = 100,
+  DrawLevel = 60,
+  TileSize = {1, 1}, BoxSize = {71, 71},
+  SightRange = 6, ComputerReactionRange = 8, PersonReactionRange = 6,
+  Armor = 5, BasicDamage = 0, PiercingDamage = 16, Missile = 
"missile-dragon-breath",
+  MaxAttackRange = 4,
+  Priority = 65,
+  Points = 150,
+  Demand = 1,
+  Type = "fly",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  AirUnit = true,
+  DetectCloak = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "dragon-selected",
     "acknowledge", "dragon-acknowledge",
     "ready", "dragon-ready",
     "help", "basic orc voices help 1",
     "dead", "explosion",
-    "attack", "dragon-attack"})
+    "attack", "dragon-attack"} } )
 
-DefineUnitType("unit-eye-of-vision", "name", "Eye of Kilrogg",
-  "files", {"tileset-summer", "orc/units/eye_of_kilrogg.png"},
-  "size", {32, 32},
-  "animations", "animations-eye-of-vision", "icon", "icon-eye-of-kilrogg",
-  "speed", 42,
-  "hit-points", 100,
-  "draw-level", 60,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 3, "computer-reaction-range", 20, "person-reaction-range", 10,
-  "basic-damage", 1, "piercing-damage", 0, "missile", "missile-none",
-  "max-attack-range", 1,
-  "priority", 0,
-  "decay-rate", 3,
-  "demand", 1,
-  "type-fly",
-  "right-move",
-  "air-unit",
-  "detect-cloak",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-eye-of-vision", { Name = "Eye of Kilrogg",
+  Files = {"tileset-summer", "orc/units/eye_of_kilrogg.png"},
+  Size = {32, 32},
+  Animations = "animations-eye-of-vision", Icon = "icon-eye-of-kilrogg",
+  Speed = 42,
+  HitPoints = 100,
+  DrawLevel = 60,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 3, ComputerReactionRange = 20, PersonReactionRange = 10,
+  BasicDamage = 1, PiercingDamage = 0, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 0,
+  DecayRate = 3,
+  Demand = 1,
+  Type = "fly",
+  RightMouseAction = "move",
+  AirUnit = true,
+  DetectCloak = true,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "eye-of-kilrogg-selected",
     "acknowledge", "eye-of-kilrogg-acknowledge",
     "ready", "eye-of-kilrogg-ready",
     "help", "basic orc voices help 1",
     "dead", "eye-of-kilrogg-dead",
-    "attack", "eye-of-kilrogg-attack"})
+    "attack", "eye-of-kilrogg-attack"} } )
 
-DefineUnitType("unit-quick-blade", "name", "Korgath Bladefist",
-  "use", "unit-grunt",
-  "size", {72, 72},
-  "animations", "animations-footman", "icon", "icon-quick-blade",
-  "costs", {"time", 60, "gold", 600},
-  "speed", 10,
-  "hit-points", 240,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 5, "computer-reaction-range", 6, "person-reaction-range", 4,
-  "armor", 8, "basic-damage", 16, "piercing-damage", 6, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 60,
-  "points", 50,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 6},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-quick-blade", { Name = "Korgath Bladefist",
+  Use = "unit-grunt",
+  Size = {72, 72},
+  Animations = "animations-footman", Icon = "icon-quick-blade",
+  Costs = {"time", 60, "gold", 600},
+  Speed = 10,
+  HitPoints = 240,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 5, ComputerReactionRange = 6, PersonReactionRange = 4,
+  Armor = 8, BasicDamage = 16, PiercingDamage = 6, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 60,
+  Points = 50,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 6},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "korgath-bladefist-selected",
     "acknowledge", "korgath-bladefist-acknowledge",
     "ready", "korgath-bladefist-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "korgath-bladefist-attack"})
+    "attack", "korgath-bladefist-attack"} } )
 
-DefineUnitType("unit-double-head", "name", "Cho'gall",
-  "use", "unit-ogre",
-  "size", {72, 72},
-  "animations", "animations-ogre", "icon", "icon-double-head",
-  "costs", {"time", 100, "gold", 1100, "wood", 50},
-  "speed", 13,
-  "hit-points", 100,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {42, 42},
-  "sight-range", 5, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "basic-damage", 10, "piercing-damage", 5, "missile", "missile-none",
-  "max-attack-range", 1,
-  "priority", 65,
-  "points", 120,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 0},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "can-cast-spell", {"spell-eye-of-vision", "spell-runes", "spell-bloodlust"},
-  "land-unit",
-  "hero",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-double-head", { Name = "Cho'gall",
+  Use = "unit-ogre",
+  Size = {72, 72},
+  Animations = "animations-ogre", Icon = "icon-double-head",
+  Costs = {"time", 100, "gold", 1100, "wood", 50},
+  Speed = 13,
+  HitPoints = 100,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {42, 42},
+  SightRange = 5, ComputerReactionRange = 7, PersonReactionRange = 5,
+  BasicDamage = 10, PiercingDamage = 5, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 65,
+  Points = 120,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 0},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  CanCastSpell = {"spell-eye-of-vision", "spell-runes", "spell-bloodlust"},
+  LandUnit = true,
+  hero = True,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "cho-gall-selected",
     "acknowledge", "cho-gall-acknowledge",
     "ready", "cho-gall-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "cho-gall-attack"})
+    "attack", "cho-gall-attack"} } )
 
-DefineUnitType("unit-ice-bringer", "name", "Gul'dan",
-  "use", "unit-death-knight",
-  "size", {72, 72},
-  "animations", "animations-death-knight", "icon", "icon-ice-bringer",
-  "costs", {"time", 120, "gold", 1200},
-  "speed", 8,
-  "hit-points", 40,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {1, 1}, "box-size", {33, 33},
-  "sight-range", 8, "computer-reaction-range", 10, "person-reaction-range", 8,
-  "basic-damage", 0, "piercing-damage", 3, "missile", "missile-touch-of-death",
-  "max-attack-range", 3,
-  "priority", 70,
-  "points", 120,
-  "demand", 1,
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "land-unit",
-  "hero",
-  "can-cast-spell", {
+DefineUnitType("unit-ice-bringer", { Name = "Gul'dan",
+  Use = "unit-death-knight",
+  Size = {72, 72},
+  Animations = "animations-death-knight", Icon = "icon-ice-bringer",
+  Costs = {"time", 120, "gold", 1200},
+  Speed = 8,
+  HitPoints = 40,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {1, 1}, BoxSize = {33, 33},
+  SightRange = 8, ComputerReactionRange = 10, PersonReactionRange = 8,
+  BasicDamage = 0, PiercingDamage = 3, Missile = "missile-touch-of-death",
+  MaxAttackRange = 3,
+  Priority = 70,
+  Points = 120,
+  Demand = 1,
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  LandUnit = true,
+  hero = True,
+  CanCastSpell = {
       "spell-death-coil",
       "spell-haste",
       "spell-raise-dead",
       "spell-whirlwind",
       "spell-unholy-armor",
       "spell-death-and-decay"},
-  "isundead",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+  isundead = True,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "gul-dan-selected",
     "acknowledge", "gul-dan-acknowledge",
     "ready", "gul-dan-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "gul-dan-attack"})
+    "attack", "gul-dan-attack"} } )
 
-DefineUnitType("unit-sharp-axe", "name", "Zuljin",
-  "use", "unit-axethrower",
-  "size", {72, 72},
-  "animations", "animations-axethrower", "icon", "icon-sharp-axe",
-  "costs", {"time", 70, "gold", 500, "wood", 50},
-  "speed", 10,
-  "hit-points", 40,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {36, 36},
-  "sight-range", 6, "computer-reaction-range", 8, "person-reaction-range", 6,
-  "basic-damage", 3, "piercing-damage", 6, "missile", "missile-axe",
-  "max-attack-range", 5,
-  "priority", 55,
-  "points", 120,
-  "demand", 1,
-  "corpse", {"unit-dead-body", 0},
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "land-unit",
-  "hero",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-sharp-axe", { Name = "Zuljin",
+  Use = "unit-axethrower",
+  Size = {72, 72},
+  Animations = "animations-axethrower", Icon = "icon-sharp-axe",
+  Costs = {"time", 70, "gold", 500, "wood", 50},
+  Speed = 10,
+  HitPoints = 40,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {36, 36},
+  SightRange = 6, ComputerReactionRange = 8, PersonReactionRange = 6,
+  BasicDamage = 3, PiercingDamage = 6, Missile = "missile-axe",
+  MaxAttackRange = 5,
+  Priority = 55,
+  Points = 120,
+  Demand = 1,
+  Corpse = {"unit-dead-body", 0},
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  LandUnit = true,
+  hero = True,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "zuljin-selected",
     "acknowledge", "zuljin-acknowledge",
     "ready", "zuljin-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "zuljin-attack"})
+    "attack", "zuljin-attack"} } )
 
-DefineUnitType("unit-skeleton", "name", "Skeleton",
-  "files", {"tileset-summer", "neutral/units/skeleton.png"},
-  "size", {56, 56},
-  "animations", "animations-skeleton", "icon", "icon-skeleton",
-  "speed", 8,
-  "hit-points", 40,
-  "draw-level", 40,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 3, "computer-reaction-range", 4, "person-reaction-range", 2,
-  "basic-damage", 6, "piercing-damage", 3, "missile", "missile-none",
-  "max-attack-range", 1,
-  "priority", 55,
-  "decay-rate", 100,
-  "demand", 1,
-  "type-land",
-  "right-attack",
-  "can-attack",
-  "can-target-land",
-  "land-unit",
-  "isundead",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-skeleton", { Name = "Skeleton",
+  Files = {"tileset-summer", "neutral/units/skeleton.png"},
+  Size = {56, 56},
+  Animations = "animations-skeleton", Icon = "icon-skeleton",
+  Speed = 8,
+  HitPoints = 40,
+  DrawLevel = 40,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 3, ComputerReactionRange = 4, PersonReactionRange = 2,
+  BasicDamage = 6, PiercingDamage = 3, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 55,
+  DecayRate = 100,
+  Demand = 1,
+  Type = "land",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true,
+  LandUnit = true,
+  isundead = True,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "skeleton-selected",
     "acknowledge", "skeleton-acknowledge",
     "ready", "skeleton-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "skeleton-attack"})
+    "attack", "skeleton-attack"} } )
 
-DefineUnitType("unit-pig-farm", "name", "Pig Farm",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/pig_farm.png",
+DefineUnitType("unit-pig-farm", { Name = "Pig Farm",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/pig_farm.png",
     "tileset-winter", "tilesets/winter/orc/buildings/pig_farm.png",
     "tileset-wasteland", "tilesets/wasteland/orc/buildings/pig_farm.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/pig_farm.png"},
-  "size", {64, 64},
-  "animations", "animations-building", "icon", "icon-pig-farm",
-  "costs", {"time", 100, "gold", 500, "wood", 250},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 400,
-  "draw-level", 20,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 2,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 20, "annoy-computer-factor", 45,
-  "points", 100,
-  "supply", 4,
-  "corpse", {"unit-destroyed-2x2-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {64, 64},
+  Animations = "animations-building", Icon = "icon-pig-farm",
+  Costs = {"time", 100, "gold", 500, "wood", 250},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 400,
+  DrawLevel = 20,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 2,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 20, AnnoyComputerFactor = 45,
+  Points = 100,
+  Supply = 4,
+  Corpse = {"unit-destroyed-2x2-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "pig-farm-selected",
     "acknowledge", "pig-farm-acknowledge",
     "ready", "pig-farm-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "pig-farm-attack"})
+    "attack", "pig-farm-attack"} } )
 
-DefineUnitType("unit-mythical-barracks", "name", "Barracks",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/barracks.png",
+DefineUnitType("unit-mythical-barracks", { Name = "Barracks",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/barracks.png",
     "tileset-winter", "tilesets/winter/orc/buildings/barracks.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/barracks.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-mythical-barracks",
-  "costs", {"time", 200, "gold", 700, "wood", 450},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 800,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 30, "annoy-computer-factor", 35,
-  "points", 160,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-mythical-barracks",
+  Costs = {"time", 200, "gold", 700, "wood", 450},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 800,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 30, AnnoyComputerFactor = 35,
+  Points = 160,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "orc-barracks-selected",
     "acknowledge", "orc-barracks-acknowledge",
     "ready", "orc-barracks-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-barracks-attack"})
+    "attack", "orc-barracks-attack"} } )
 
-DefineUnitType("unit-altar-of-storms", "name", "Altar of Storms",
-  "files", {"tileset-summer", 
"tilesets/summer/orc/buildings/altar_of_storms.png",
+DefineUnitType("unit-altar-of-storms", { Name = "Altar of Storms",
+  Files = {"tileset-summer", 
"tilesets/summer/orc/buildings/altar_of_storms.png",
     "tileset-winter", "tilesets/winter/orc/buildings/altar_of_storms.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/altar_of_storms.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-altar-of-storms",
-  "costs", {"time", 175, "gold", 900, "wood", 500},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 700,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 35,
-  "points", 240,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-altar-of-storms",
+  Costs = {"time", 175, "gold", 900, "wood", 500},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 700,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 35,
+  Points = 240,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "altar-of-storms-selected",
     "acknowledge", "altar-of-storms-acknowledge",
     "ready", "altar-of-storms-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "altar-of-storms-attack"})
+    "attack", "altar-of-storms-attack"} } )
 
-DefineUnitType("unit-mythical-watch-tower", "name", "Watch Tower",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/watch_tower.png",
+DefineUnitType("unit-mythical-watch-tower", { Name = "Watch Tower",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/watch_tower.png",
     "tileset-winter", "tilesets/winter/orc/buildings/watch_tower.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/watch_tower.png"},
-  "size", {64, 64},
-  "animations", "animations-building", "icon", "icon-mythical-watch-tower",
-  "costs", {"time", 60, "gold", 550, "wood", 200},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 100,
-  "draw-level", 20,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 9,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 55, "annoy-computer-factor", 50,
-  "points", 95,
-  "corpse", {"unit-destroyed-2x2-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "building", "visible-under-fog", 
-  "detect-cloak",
-  "sounds", {
+  Size = {64, 64},
+  Animations = "animations-building", Icon = "icon-mythical-watch-tower",
+  Costs = {"time", 60, "gold", 550, "wood", 200},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 100,
+  DrawLevel = 20,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 9,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 55, AnnoyComputerFactor = 50,
+  Points = 95,
+  Corpse = {"unit-destroyed-2x2-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  Building = true, VisibleUnderFog = true, 
+  DetectCloak = true,
+  Sounds = {
     "selected", "orc-watch-tower-selected",
     "acknowledge", "orc-watch-tower-acknowledge",
     "ready", "orc-watch-tower-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-watch-tower-attack"})
+    "attack", "orc-watch-tower-attack"} } )
 
-DefineUnitType("unit-ogre-mound", "name", "Ogre Mound",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/ogre_mound.png",
+DefineUnitType("unit-ogre-mound", { Name = "Ogre Mound",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/ogre_mound.png",
     "tileset-winter", "tilesets/winter/orc/buildings/ogre_mound.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/ogre_mound.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-ogre-mound",
-  "costs", {"time", 150, "gold", 1000, "wood", 300},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 500,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 15,
-  "points", 210,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-ogre-mound",
+  Costs = {"time", 150, "gold", 1000, "wood", 300},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 500,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 15,
+  Points = 210,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "ogre-mound-selected",
     "acknowledge", "ogre-mound-acknowledge",
     "ready", "ogre-mound-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "ogre-mound-attack"})
+    "attack", "ogre-mound-attack"} } )
 
-DefineUnitType("unit-alchemist", "name", "Goblin Alchemist",
-  "files", {"tileset-summer", 
"tilesets/summer/orc/buildings/goblin_alchemist.png",
+DefineUnitType("unit-alchemist", { Name = "Goblin Alchemist",
+  Files = {"tileset-summer", 
"tilesets/summer/orc/buildings/goblin_alchemist.png",
     "tileset-winter", "tilesets/winter/orc/buildings/goblin_alchemist.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/goblin_alchemist.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-alchemist",
-  "costs", {"time", 150, "gold", 1000, "wood", 400},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 500,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 20,
-  "points", 230,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-alchemist",
+  Costs = {"time", 150, "gold", 1000, "wood", 400},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 500,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 20,
+  Points = 230,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "goblin-alchemist-selected",
     "acknowledge", "goblin-alchemist-acknowledge",
     "ready", "goblin-alchemist-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "goblin-alchemist-attack"})
+    "attack", "goblin-alchemist-attack"} } )
 
-DefineUnitType("unit-dragon-roost", "name", "Dragon Roost",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/dragon_roost.png",
+DefineUnitType("unit-dragon-roost", { Name = "Dragon Roost",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/dragon_roost.png",
     "tileset-winter", "tilesets/winter/orc/buildings/dragon_roost.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/dragon_roost.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-dragon-roost",
-  "costs", {"time", 150, "gold", 1000, "wood", 400},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 500,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 20,
-  "points", 280,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-dragon-roost",
+  Costs = {"time", 150, "gold", 1000, "wood", 400},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 500,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 20,
+  Points = 280,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "dragon-roost-selected",
     "acknowledge", "dragon-roost-acknowledge",
     "ready", "dragon-roost-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "dragon-roost-attack"})
+    "attack", "dragon-roost-attack"} } )
 
-DefineUnitType("unit-mythical-shipyard", "name", "Shipyard",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/shipyard.png",
+DefineUnitType("unit-mythical-shipyard", { Name = "Shipyard",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/shipyard.png",
     "tileset-winter", "tilesets/winter/orc/buildings/shipyard.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/shipyard.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-mythical-shipyard",
-  "costs", {"time", 200, "gold", 800, "wood", 450},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-mythical-shipyard",
-  "speed", 0,
-  "hit-points", 1100,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 30, "annoy-computer-factor", 20,
-  "points", 170,
-  "corpse", {"unit-destroyed-3x3-place", 3},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "shore-building",
-  "can-store", {"oil"},
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-mythical-shipyard",
+  Costs = {"time", 200, "gold", 800, "wood", 450},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-mythical-shipyard",
+  Speed = 0,
+  HitPoints = 1100,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 30, AnnoyComputerFactor = 20,
+  Points = 170,
+  Corpse = {"unit-destroyed-3x3-place", 3},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  ShoreBuilding = true,
+  CanStore = {"oil"},
+  Sounds = {
     "selected", "orc-shipyard-selected",
     "acknowledge", "orc-shipyard-acknowledge",
     "ready", "orc-shipyard-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-shipyard-attack"})
+    "attack", "orc-shipyard-attack"} } )
 
-DefineUnitType("unit-great-hall", "name", "Great Hall",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/great_hall.png",
+DefineUnitType("unit-great-hall", { Name = "Great Hall",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/great_hall.png",
     "tileset-winter", "tilesets/winter/orc/buildings/great_hall.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/great_hall.png"},
-  "size", {128, 128},
-  "animations", "animations-building", "icon", "icon-great-hall",
-  "costs", {"time", 255, "gold", 1200, "wood", 800},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 1200,
-  "draw-level", 20,
-  "tile-size", {4, 4}, "box-size", {127, 127},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 35, "annoy-computer-factor", 45,
-  "points", 200,
-  "supply", 1,
-  "corpse", {"unit-destroyed-4x4-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "can-store", {"gold", "wood"},
-  "sounds", {
+  Size = {128, 128},
+  Animations = "animations-building", Icon = "icon-great-hall",
+  Costs = {"time", 255, "gold", 1200, "wood", 800},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 1200,
+  DrawLevel = 20,
+  TileSize = {4, 4}, BoxSize = {127, 127},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 35, AnnoyComputerFactor = 45,
+  Points = 200,
+  Supply = 1,
+  Corpse = {"unit-destroyed-4x4-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  CanStore = {"gold", "wood"},
+  Sounds = {
     "selected", "great-hall-selected",
     "acknowledge", "great-hall-acknowledge",
     "ready", "great-hall-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "great-hall-attack"})
+    "attack", "great-hall-attack"} } )
 
-DefineUnitType("unit-troll-lumber-mill", "name", "Troll Lumber Mill",
-  "files", {"tileset-summer", 
"tilesets/summer/orc/buildings/troll_lumber_mill.png",
+DefineUnitType("unit-troll-lumber-mill", { Name = "Troll Lumber Mill",
+  Files = {"tileset-summer", 
"tilesets/summer/orc/buildings/troll_lumber_mill.png",
     "tileset-winter", "tilesets/winter/orc/buildings/troll_lumber_mill.png",
     "tileset-wasteland", 
"tilesets/wasteland/orc/buildings/troll_lumber_mill.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/troll_lumber_mill.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-troll-lumber-mill",
-  "costs", {"time", 150, "gold", 600, "wood", 450},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "improve-production", {"wood", 25},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 600,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 25, "annoy-computer-factor", 15,
-  "points", 150,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "can-store", {"wood"},
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-troll-lumber-mill",
+  Costs = {"time", 150, "gold", 600, "wood", 450},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  ImproveProduction = {"wood", 25},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 600,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 25, AnnoyComputerFactor = 15,
+  Points = 150,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  CanStore = {"wood"},
+  Sounds = {
     "selected", "troll-lumber-mill-selected",
     "acknowledge", "troll-lumber-mill-acknowledge",
     "ready", "troll-lumber-mill-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "troll-lumber-mill-attack"})
+    "attack", "troll-lumber-mill-attack"} } )
 
-DefineUnitType("unit-mythical-foundry", "name", "Foundry",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/foundry.png",
+DefineUnitType("unit-mythical-foundry", { Name = "Foundry",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/foundry.png",
     "tileset-winter", "tilesets/winter/orc/buildings/foundry.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/foundry.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-mythical-foundry",
-  "costs", {"time", 175, "gold", 700, "wood", 400, "oil", 400},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "construction", "construction-mythical-foundry",
-  "speed", 0,
-  "hit-points", 750,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 20,
-  "points", 200,
-  "corpse", {"unit-destroyed-3x3-place", 3},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "shore-building",
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-mythical-foundry",
+  Costs = {"time", 175, "gold", 700, "wood", 400, "oil", 400},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  Construction = "construction-mythical-foundry",
+  Speed = 0,
+  HitPoints = 750,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 20,
+  Points = 200,
+  Corpse = {"unit-destroyed-3x3-place", 3},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  ShoreBuilding = true,
+  Sounds = {
     "selected", "orc-foundry-selected",
     "acknowledge", "orc-foundry-acknowledge",
     "ready", "orc-foundry-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-foundry-attack"})
+    "attack", "orc-foundry-attack"} } )
 
-DefineUnitType("unit-temple-of-the-damned", "name", "Temple of the Damned",
-  "files", {"tileset-summer", 
"tilesets/summer/orc/buildings/temple_of_the_damned.png",
+DefineUnitType("unit-temple-of-the-damned", { Name = "Temple of the Damned",
+  Files = {"tileset-summer", 
"tilesets/summer/orc/buildings/temple_of_the_damned.png",
     "tileset-winter", "tilesets/winter/orc/buildings/temple_of_the_damned.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/temple_of_the_damned.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-temple-of-the-damned",
-  "costs", {"time", 125, "gold", 1000, "wood", 200},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 500,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 35, "annoy-computer-factor", 20,
-  "points", 240,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-temple-of-the-damned",
+  Costs = {"time", 125, "gold", 1000, "wood", 200},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 500,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 35, AnnoyComputerFactor = 20,
+  Points = 240,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "temple-of-the-damned-selected",
     "acknowledge", "temple-of-the-damned-acknowledge",
     "ready", "temple-of-the-damned-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "temple-of-the-damned-attack"})
+    "attack", "temple-of-the-damned-attack"} } )
 
-DefineUnitType("unit-mythical-blacksmith", "name", "Blacksmith",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/blacksmith.png",
+DefineUnitType("unit-mythical-blacksmith", { Name = "Blacksmith",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/blacksmith.png",
     "tileset-winter", "tilesets/winter/orc/buildings/blacksmith.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/blacksmith.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-mythical-blacksmith",
-  "costs", {"time", 200, "gold", 800, "wood", 450, "oil", 100},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 775,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 20,
-  "points", 170,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-mythical-blacksmith",
+  Costs = {"time", 200, "gold", 800, "wood", 450, "oil", 100},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 775,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 20,
+  Points = 170,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "orc-blacksmith-selected",
     "acknowledge", "orc-blacksmith-acknowledge",
     "ready", "orc-blacksmith-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-blacksmith-attack"})
+    "attack", "orc-blacksmith-attack"} } )
 
-DefineUnitType("unit-orc-refinery", "name", "Refinery",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/refinery.png",
+DefineUnitType("unit-orc-refinery", { Name = "Refinery",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/refinery.png",
     "tileset-winter", "tilesets/winter/orc/buildings/refinery.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/refinery.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-mythical-refinery",
-  "costs", {"time", 225, "gold", 800, "wood", 350, "oil", 200},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "improve-production", {"oil", 25},
-  "construction", "construction-mythical-refinery",
-  "speed", 0,
-  "hit-points", 600,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 25, "annoy-computer-factor", 20,
-  "points", 200,
-  "corpse", {"unit-destroyed-3x3-place", 3},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "shore-building",
-  "can-store", {"oil"},
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-mythical-refinery",
+  Costs = {"time", 225, "gold", 800, "wood", 350, "oil", 200},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  ImproveProduction = {"oil", 25},
+  Construction = "construction-mythical-refinery",
+  Speed = 0,
+  HitPoints = 600,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 25, AnnoyComputerFactor = 20,
+  Points = 200,
+  Corpse = {"unit-destroyed-3x3-place", 3},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  ShoreBuilding = true,
+  CanStore = {"oil"},
+  Sounds = {
     "selected", "orc-refinery-selected",
     "acknowledge", "orc-refinery-acknowledge",
     "ready", "orc-refinery-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-refinery-attack"})
+    "attack", "orc-refinery-attack"} } )
 
-DefineUnitType("unit-mythical-oil-platform", "name", "Oil Platform",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/oil_platform.png",
+DefineUnitType("unit-mythical-oil-platform", { Name = "Oil Platform",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/oil_platform.png",
     "tileset-winter", "tilesets/winter/orc/buildings/oil_platform.png",
     "tileset-wasteland", "tilesets/wasteland/orc/buildings/oil_platform.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/oil_platform.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-mythical-oil-platform",
-  "costs", {"time", 200, "gold", 700, "wood", 450},
-  "construction", "construction-mythical-oil-well",
-  "speed", 0,
-  "hit-points", 650,
-  "draw-level", 20,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 20, "annoy-computer-factor", 20,
-  "points", 160,
-  "corpse", {"unit-destroyed-3x3-place", 3},
-  "explode-when-killed", "missile-explosion",
-  "type-naval",
-  "building", "visible-under-fog", 
-  "must-build-on-top", "unit-oil-patch",
-  "gives-resource", "oil", "can-harvest",
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-mythical-oil-platform",
+  Costs = {"time", 200, "gold", 700, "wood", 450},
+  Construction = "construction-mythical-oil-well",
+  Speed = 0,
+  HitPoints = 650,
+  DrawLevel = 20,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 20, AnnoyComputerFactor = 20,
+  Points = 160,
+  Corpse = {"unit-destroyed-3x3-place", 3},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "naval",
+  Building = true, VisibleUnderFog = true, 
+  MustBuildOnTop = "unit-oil-patch",
+  GivesResource = "oil", CanHarvest = true,
+  Sounds = {
     "selected", "orc-oil-platform-selected",
     "acknowledge", "orc-oil-platform-acknowledge",
     "ready", "orc-oil-platform-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-oil-platform-attack"})
+    "attack", "orc-oil-platform-attack"} } )
 
-DefineUnitType("unit-stronghold", "name", "Stronghold",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/stronghold.png",
+DefineUnitType("unit-stronghold", { Name = "Stronghold",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/stronghold.png",
     "tileset-winter", "tilesets/winter/orc/buildings/stronghold.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/stronghold.png"},
-  "size", {128, 128},
-  "animations", "animations-building", "icon", "icon-stronghold",
-  "costs", {"time", 200, "gold", 2000, "wood", 1000, "oil", 200},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "improve-production", {"gold", 10},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 1400,
-  "draw-level", 20,
-  "tile-size", {4, 4}, "box-size", {127, 127},
-  "sight-range", 2,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 37, "annoy-computer-factor", 40,
-  "points", 600,
-  "supply", 1,
-  "corpse", {"unit-destroyed-4x4-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "can-store", {"gold", "wood"},
-  "sounds", {
+  Size = {128, 128},
+  Animations = "animations-building", Icon = "icon-stronghold",
+  Costs = {"time", 200, "gold", 2000, "wood", 1000, "oil", 200},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  ImproveProduction = {"gold", 10},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 1400,
+  DrawLevel = 20,
+  TileSize = {4, 4}, BoxSize = {127, 127},
+  SightRange = 2,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 37, AnnoyComputerFactor = 40,
+  Points = 600,
+  Supply = 1,
+  Corpse = {"unit-destroyed-4x4-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  CanStore = {"gold", "wood"},
+  Sounds = {
     "selected", "stronghold-selected",
     "acknowledge", "stronghold-acknowledge",
     "ready", "stronghold-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "stronghold-attack"})
+    "attack", "stronghold-attack"} } )
 
-DefineUnitType("unit-fortress", "name", "Fortress",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/fortress.png",
+DefineUnitType("unit-fortress", { Name = "Fortress",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/fortress.png",
     "tileset-winter", "tilesets/winter/orc/buildings/fortress.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/fortress.png"},
-  "size", {128, 128},
-  "animations", "animations-building", "icon", "icon-fortress",
-  "costs", {"time", 200, "gold", 2500, "wood", 1200, "oil", 500},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "improve-production", {"gold", 20},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 1600,
-  "draw-level", 20,
-  "tile-size", {4, 4}, "box-size", {127, 127},
-  "sight-range", 6,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 40, "annoy-computer-factor", 50,
-  "points", 1500,
-  "supply", 1,
-  "corpse", {"unit-destroyed-4x4-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "can-store", {"gold", "wood"},
-  "sounds", {
+  Size = {128, 128},
+  Animations = "animations-building", Icon = "icon-fortress",
+  Costs = {"time", 200, "gold", 2500, "wood", 1200, "oil", 500},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  ImproveProduction = {"gold", 20},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 1600,
+  DrawLevel = 20,
+  TileSize = {4, 4}, BoxSize = {127, 127},
+  SightRange = 6,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 40, AnnoyComputerFactor = 50,
+  Points = 1500,
+  Supply = 1,
+  Corpse = {"unit-destroyed-4x4-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  CanStore = {"gold", "wood"},
+  Sounds = {
     "selected", "fortress-selected",
     "acknowledge", "fortress-acknowledge",
     "ready", "fortress-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "fortress-attack"})
+    "attack", "fortress-attack"} } )
 
-DefineUnitType("unit-mythical-start-location", "name", "Start Location",
-  "files", {"tileset-summer", "orc/o_startpoint.png"},
-  "size", {32, 32},
-  "num-directions", 1,
-  "animations", "animations-building", "icon", "icon-cancel",
-  "speed", 0,
-  "hit-points", 0,
-  "draw-level", 0,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 0,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "demand", 0,
-  "type-land",
-  "sounds", {
+DefineUnitType("unit-mythical-start-location", { Name = "Start Location",
+  Files = {"tileset-summer", "orc/o_startpoint.png"},
+  Size = {32, 32},
+  NumDirections = 1,
+  Animations = "animations-building", Icon = "icon-cancel",
+  Speed = 0,
+  HitPoints = 0,
+  DrawLevel = 0,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 0,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Demand = 0,
+  Type = "land",
+  Sounds = {
     "selected", "orc-start-location-selected",
     "acknowledge", "orc-start-location-acknowledge",
     "ready", "orc-start-location-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-start-location-attack"})
+    "attack", "orc-start-location-attack"} } )
 
-DefineUnitType("unit-mythical-guard-tower", "name", "Guard Tower",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/guard_tower.png",
+DefineUnitType("unit-mythical-guard-tower", { Name = "Guard Tower",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/guard_tower.png",
     "tileset-winter", "tilesets/winter/orc/buildings/guard_tower.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/guard_tower.png"},
-  "size", {64, 64},
-  "animations", "animations-human-guard-tower", "icon", 
"icon-mythical-guard-tower",
-  "costs", {"time", 140, "gold", 500, "wood", 150},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 130,
-  "draw-level", 40,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 9, "computer-reaction-range", 6, "person-reaction-range", 6,
-  "armor", 20, "basic-damage", 4, "piercing-damage", 12, "missile", 
"missile-arrow",
-  "max-attack-range", 6,
-  "priority", 40, "annoy-computer-factor", 50,
-  "points", 200,
-  "corpse", {"unit-destroyed-2x2-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "building", "visible-under-fog", 
-  "detect-cloak",
-  "sounds", {
+  Size = {64, 64},
+  Animations = "animations-human-guard-tower", Icon = 
"icon-mythical-guard-tower",
+  Costs = {"time", 140, "gold", 500, "wood", 150},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 130,
+  DrawLevel = 40,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 9, ComputerReactionRange = 6, PersonReactionRange = 6,
+  Armor = 20, BasicDamage = 4, PiercingDamage = 12, Missile = "missile-arrow",
+  MaxAttackRange = 6,
+  Priority = 40, AnnoyComputerFactor = 50,
+  Points = 200,
+  Corpse = {"unit-destroyed-2x2-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  Building = true, VisibleUnderFog = true, 
+  DetectCloak = true,
+  Sounds = {
     "selected", "orc-guard-tower-selected",
     "acknowledge", "orc-guard-tower-acknowledge",
     "ready", "orc-guard-tower-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-guard-tower-attack"})
+    "attack", "orc-guard-tower-attack"} } )
 
-DefineUnitType("unit-mythical-cannon-tower", "name", "Cannon Tower",
-  "files", {"tileset-summer", "tilesets/summer/orc/buildings/cannon_tower.png",
+DefineUnitType("unit-mythical-cannon-tower", { Name = "Cannon Tower",
+  Files = {"tileset-summer", "tilesets/summer/orc/buildings/cannon_tower.png",
     "tileset-winter", "tilesets/winter/orc/buildings/cannon_tower.png",
     "tileset-swamp", "tilesets/swamp/orc/buildings/cannon_tower.png"},
-  "size", {64, 64},
-  "animations", "animations-human-cannon-tower", "icon", 
"icon-mythical-cannon-tower",
-  "costs", {"time", 190, "gold", 1000, "wood", 300},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land",
-  "speed", 0,
-  "hit-points", 160,
-  "draw-level", 40,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 9, "computer-reaction-range", 7, "person-reaction-range", 7,
-  "armor", 20, "basic-damage", 50, "piercing-damage", 0, "missile", 
"missile-small-cannon",
-  "min-attack-range", 2, "max-attack-range", 7,
-  "priority", 40, "annoy-computer-factor", 50,
-  "points", 250,
-  "corpse", {"unit-destroyed-2x2-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "can-attack",
-  "can-target-land", "can-target-sea",
-  "building", "visible-under-fog", 
-  "detect-cloak",
-  "sounds", {
+  Size = {64, 64},
+  Animations = "animations-human-cannon-tower", Icon = 
"icon-mythical-cannon-tower",
+  Costs = {"time", 190, "gold", 1000, "wood", 300},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land",
+  Speed = 0,
+  HitPoints = 160,
+  DrawLevel = 40,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 9, ComputerReactionRange = 7, PersonReactionRange = 7,
+  Armor = 20, BasicDamage = 50, PiercingDamage = 0, Missile = 
"missile-small-cannon",
+  MinAttackRange = 2, MaxAttackRange = 7,
+  Priority = 40, AnnoyComputerFactor = 50,
+  Points = 250,
+  Corpse = {"unit-destroyed-2x2-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true,
+  Building = true, VisibleUnderFog = true, 
+  DetectCloak = true,
+  Sounds = {
     "selected", "orc-cannon-tower-selected",
     "acknowledge", "orc-cannon-tower-acknowledge",
     "ready", "orc-cannon-tower-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-cannon-tower-attack"})
+    "attack", "orc-cannon-tower-attack"} } )
 
-DefineUnitType("unit-orc-wall", "name", "Wall",
-  "use", "unit-human-wall",
-  "size", {32, 32},
-  "animations", "animations-building", "icon", "icon-mythical-wall",
-  "costs", {"time", 30, "gold", 20, "wood", 10},
-  "construction", "construction-wall",
-  "speed", 0,
-  "hit-points", 40,
-  "draw-level", 39,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 0, "annoy-computer-factor", 45,
-  "points", 1,
-  "corpse", {"unit-destroyed-1x1-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", 
-  "sounds", {
+DefineUnitType("unit-orc-wall", { Name = "Wall",
+  Use = "unit-human-wall",
+  Size = {32, 32},
+  Animations = "animations-building", Icon = "icon-mythical-wall",
+  Costs = {"time", 30, "gold", 20, "wood", 10},
+  Construction = "construction-wall",
+  Speed = 0,
+  HitPoints = 40,
+  DrawLevel = 39,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0, AnnoyComputerFactor = 45,
+  Points = 1,
+  Corpse = {"unit-destroyed-1x1-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, 
+  Sounds = {
     "selected", "orc-wall-selected",
     "acknowledge", "orc-wall-acknowledge",
     "ready", "orc-wall-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "orc-wall-attack"})
+    "attack", "orc-wall-attack"} } )
 
Index: stratagus/data/ccl/spells.lua
diff -u stratagus/data/ccl/spells.lua:1.1 stratagus/data/ccl/spells.lua:1.2
--- stratagus/data/ccl/spells.lua:1.1   Thu Nov 20 08:14:39 2003
+++ stratagus/data/ccl/spells.lua       Tue Dec 16 08:11:11 2003
@@ -26,7 +26,7 @@
 --      along with this program; if not, write to the Free Software
 --      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  
USA
 --
---     $Id: spells.lua,v 1.1 2003/11/19 21:14:39 jsalmon3 Exp $
+--     $Id: spells.lua,v 1.2 2003/12/15 21:11:11 jsalmon3 Exp $
 
 -- For documentation see stratagus/doc/ccl/ccl.html ;; FIXME write and move 
doc.
 
@@ -34,11 +34,11 @@
 
 --  Declare some unit types used in spells. This is quite accetable, the other
 --  way would be to define can-cast-spell outside unit definitions, not much 
of an improvement.
-DefineUnitType("unit-revealer")
-DefineUnitType("unit-eye-of-vision")
-DefineUnitType("unit-critter")
-DefineUnitType("unit-skeleton")
-DefineUnitType("unit-circle-of-power")
+DefineUnitType("unit-revealer", {})
+DefineUnitType("unit-eye-of-vision", {})
+DefineUnitType("unit-critter", {})
+DefineUnitType("unit-skeleton", {})
+DefineUnitType("unit-circle-of-power", {})
 
 DefineSpell("spell-suicide-bomber",
        "showname", "Demolish",
Index: stratagus/data/ccl/units.lua
diff -u stratagus/data/ccl/units.lua:1.1 stratagus/data/ccl/units.lua:1.2
--- stratagus/data/ccl/units.lua:1.1    Thu Nov 20 09:19:49 2003
+++ stratagus/data/ccl/units.lua        Tue Dec 16 08:11:11 2003
@@ -26,7 +26,7 @@
 --      along with this program; if not, write to the Free Software
 --      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  
USA
 --
---     $Id: units.lua,v 1.1 2003/11/19 22:19:49 jsalmon3 Exp $
+--     $Id: units.lua,v 1.2 2003/12/15 21:11:11 jsalmon3 Exp $
 
 -- Load the animations for the units.
 Load("ccl/anim.lua")
@@ -36,409 +36,409 @@
 --
 --     NOTE: Save can generate this table.
 --
-DefineUnitType("unit-nothing-22", "name", "Nothing 22",
-  "files", {},
-  "size", {0, 0},
-  "animations", "animations-building", "icon", "icon-cancel",
-  "speed", 99,
-  "hit-points", 10,
-  "draw-level", 0,
-  "tile-size", {0, 0}, "box-size", {0, 0},
-  "sight-range", 0,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "type-land",
-  "sounds", {})
-
-DefineUnitType("unit-nothing-24", "name", "Nothing 24",
-  "files", {},
-  "size", {32, 32},
-  "animations", "animations-building", "icon", "icon-cancel",
-  "costs", {"time", 60, "gold", 400},
-  "speed", 99,
-  "hit-points", 60,
-  "draw-level", 10,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 4, "computer-reaction-range", 20, "person-reaction-range", 10,
-  "armor", 2, "basic-damage", 9, "piercing-damage", 1, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 40,
-  "type-naval",
-  "sea-unit",
-  "selectable-by-rectangle",
-  "sounds", {})
-
-DefineUnitType("unit-nothing-25", "name", "Nothing 25",
-  "files", {},
-  "size", {32, 32},
-  "animations", "animations-building", "icon", "icon-cancel",
-  "costs", {"time", 60, "gold", 400},
-  "speed", 99,
-  "hit-points", 60,
-  "draw-level", 10,
-  "tile-size", {1, 1}, "box-size", {63, 63},
-  "sight-range", 4, "computer-reaction-range", 20, "person-reaction-range", 10,
-  "armor", 2, "basic-damage", 9, "piercing-damage", 1, "missile", 
"missile-none",
-  "max-attack-range", 1,
-  "priority", 40,
-  "type-naval",
-  "sea-unit",
-  "selectable-by-rectangle",
-  "sounds", {})
-
-DefineUnitType("unit-nothing-30", "name", "Nothing 30",
-  "files", {},
-  "size", {0, 0},
-  "animations", "animations-building", "icon", "icon-cancel",
-  "speed", 99,
-  "hit-points", 0,
-  "draw-level", 10,
-  "tile-size", {0, 0}, "box-size", {0, 0},
-  "sight-range", 0,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "type-land",
-  "sounds", {})
-
-DefineUnitType("unit-nothing-36", "name", "Nothing 36",
-  "files", {},
-  "size", {0, 0},
-  "animations", "animations-building", "icon", "icon-cancel",
-  "speed", 99,
-  "hit-points", 0,
-  "draw-level", 10,
-  "tile-size", {0, 0}, "box-size", {0, 0},
-  "sight-range", 0,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "type-land",
-  "sounds", {})
-
-DefineUnitType("unit-daemon", "name", "Daemon",
-  "files", {"tileset-summer", "neutral/units/daemon.png"},
-  "size", {72, 72},
-  "animations", "animations-daemon", "icon", "icon-daemon",
-  "costs", {"time", 70, "gold", 500, "oil", 50},
-  "neutral-minimap-color", {192, 0, 0},
-  "speed", 14,
-  "hit-points", 60,
-  "draw-level", 60,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 5, "computer-reaction-range", 7, "person-reaction-range", 5,
-  "armor", 3, "basic-damage", 10, "piercing-damage", 2, "missile", 
"missile-daemon-fire",
-  "max-attack-range", 3,
-  "priority", 63,
-  "points", 100,
-  "demand", 1,
-  "type-fly",
-  "right-attack",
-  "can-attack",
-  "can-target-land", "can-target-sea", "can-target-air",
-  "air-unit",
-  "detect-cloak",
-  "organic",
-  "selectable-by-rectangle",
-  "sounds", {
+DefineUnitType("unit-nothing-22", { Name = "Nothing 22",
+  Files = {},
+  Size = {0, 0},
+  Animations = "animations-building", Icon = "icon-cancel",
+  Speed = 99,
+  HitPoints = 10,
+  DrawLevel = 0,
+  TileSize = {0, 0}, BoxSize = {0, 0},
+  SightRange = 0,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Type = "land",
+  Sounds = {} } )
+
+DefineUnitType("unit-nothing-24", { Name = "Nothing 24",
+  Files = {},
+  Size = {32, 32},
+  Animations = "animations-building", Icon = "icon-cancel",
+  Costs = {"time", 60, "gold", 400},
+  Speed = 99,
+  HitPoints = 60,
+  DrawLevel = 10,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 4, ComputerReactionRange = 20, PersonReactionRange = 10,
+  Armor = 2, BasicDamage = 9, PiercingDamage = 1, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 40,
+  Type = "naval",
+  SeaUnit = true,
+  SelectableByRectangle = true,
+  Sounds = {} } )
+
+DefineUnitType("unit-nothing-25", { Name = "Nothing 25",
+  Files = {},
+  Size = {32, 32},
+  Animations = "animations-building", Icon = "icon-cancel",
+  Costs = {"time", 60, "gold", 400},
+  Speed = 99,
+  HitPoints = 60,
+  DrawLevel = 10,
+  TileSize = {1, 1}, BoxSize = {63, 63},
+  SightRange = 4, ComputerReactionRange = 20, PersonReactionRange = 10,
+  Armor = 2, BasicDamage = 9, PiercingDamage = 1, Missile = "missile-none",
+  MaxAttackRange = 1,
+  Priority = 40,
+  Type = "naval",
+  SeaUnit = true,
+  SelectableByRectangle = true,
+  Sounds = {} } )
+
+DefineUnitType("unit-nothing-30", { Name = "Nothing 30",
+  Files = {},
+  Size = {0, 0},
+  Animations = "animations-building", Icon = "icon-cancel",
+  Speed = 99,
+  HitPoints = 0,
+  DrawLevel = 10,
+  TileSize = {0, 0}, BoxSize = {0, 0},
+  SightRange = 0,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Type = "land",
+  Sounds = {} } )
+
+DefineUnitType("unit-nothing-36", { Name = "Nothing 36",
+  Files = {},
+  Size = {0, 0},
+  Animations = "animations-building", Icon = "icon-cancel",
+  Speed = 99,
+  HitPoints = 0,
+  DrawLevel = 10,
+  TileSize = {0, 0}, BoxSize = {0, 0},
+  SightRange = 0,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Type = "land",
+  Sounds = {} } )
+
+DefineUnitType("unit-daemon", { Name = "Daemon",
+  Files = {"tileset-summer", "neutral/units/daemon.png"},
+  Size = {72, 72},
+  Animations = "animations-daemon", Icon = "icon-daemon",
+  Costs = {"time", 70, "gold", 500, "oil", 50},
+  NeutralMinimapColor = {192, 0, 0},
+  Speed = 14,
+  HitPoints = 60,
+  DrawLevel = 60,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 5, ComputerReactionRange = 7, PersonReactionRange = 5,
+  Armor = 3, BasicDamage = 10, PiercingDamage = 2, Missile = 
"missile-daemon-fire",
+  MaxAttackRange = 3,
+  Priority = 63,
+  Points = 100,
+  Demand = 1,
+  Type = "fly",
+  RightMouseAction = "attack",
+  CanAttack = true,
+  CanTargetLand = true, CanTargetSea = true, CanTargetAir = true,
+  AirUnit = true,
+  DetectCloak = true,
+  organic = True,
+  SelectableByRectangle = true,
+  Sounds = {
     "selected", "daemon-selected",
     "acknowledge", "daemon-acknowledge",
     "ready", "daemon-ready",
     "help", "basic orc voices help 1",
     "dead", "basic orc voices dead",
-    "attack", "daemon-attack"})
+    "attack", "daemon-attack"} } )
 
-DefineUnitType("unit-critter", "name", "Critter",
-  "files", {"tileset-summer", "tilesets/summer/neutral/units/critter.png",
+DefineUnitType("unit-critter", { Name = "Critter",
+  Files = {"tileset-summer", "tilesets/summer/neutral/units/critter.png",
     "tileset-winter", "tilesets/winter/neutral/units/critter.png",
     "tileset-wasteland", "tilesets/wasteland/neutral/units/critter.png",
     "tileset-swamp", "tilesets/swamp/neutral/units/critter.png"},
-  "size", {32, 32},
-  "animations", "animations-critter", "icon", "icon-critter",
-  "neutral-minimap-color", {192, 192, 192},
-  "speed", 3,
-  "hit-points", 5,
-  "draw-level", 35,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 2, "computer-reaction-range", 20, "person-reaction-range", 10,
-  "basic-damage", 80, "piercing-damage", 0, "missile", 
"missile-critter-explosion",
-  "max-attack-range", 1,
-  "priority", 37,
-  "points", 1,
-  "demand", 1,
-  "type-land",
-  "right-move",
-  "can-target-land",
-  "land-unit",
-  "random-movement-probability", 100,
-  "clicks-to-explode", 10,
-  "organic",
-  "sounds", {
+  Size = {32, 32},
+  Animations = "animations-critter", Icon = "icon-critter",
+  NeutralMinimapColor = {192, 192, 192},
+  Speed = 3,
+  HitPoints = 5,
+  DrawLevel = 35,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 2, ComputerReactionRange = 20, PersonReactionRange = 10,
+  BasicDamage = 80, PiercingDamage = 0, Missile = "missile-critter-explosion",
+  MaxAttackRange = 1,
+  Priority = 37,
+  Points = 1,
+  Demand = 1,
+  Type = "land",
+  RightMouseAction = "move",
+  CanTargetLand = true,
+  LandUnit = true,
+  RandomMovementProbability = 100,
+  ClicksToExplode = 10,
+  organic = True,
+  Sounds = {
     "selected", "critter-selected",
     "acknowledge", "critter-acknowledge",
     "ready", "critter-ready",
     "help", "critter-help",
     "dead", "critter-dead",
-    "attack", "critter-attack"})
+    "attack", "critter-attack"} } )
 
-DefineUnitType("unit-gold-mine", "name", "Gold Mine",
-  "files", {"tileset-summer", 
"tilesets/summer/neutral/buildings/gold_mine.png",
+DefineUnitType("unit-gold-mine", { Name = "Gold Mine",
+  Files = {"tileset-summer", "tilesets/summer/neutral/buildings/gold_mine.png",
     "tileset-winter", "tilesets/winter/neutral/buildings/gold_mine.png",
     "tileset-wasteland", "tilesets/wasteland/neutral/buildings/gold_mine.png",
     "tileset-swamp", "tilesets/swamp/neutral/buildings/gold_mine.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-gold-mine",
-  "neutral-minimap-color", {255, 255, 0},
-  "costs", {"time", 150},
-  "construction", "construction-land2",
-  "speed", 0,
-  "hit-points", 25500,
-  "draw-level", 40,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 1,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 0,
-  "corpse", {"unit-destroyed-3x3-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog",
-  "gives-resource", "gold", "can-harvest",
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-gold-mine",
+  NeutralMinimapColor = {255, 255, 0},
+  Costs = {"time", 150},
+  Construction = "construction-land2",
+  Speed = 0,
+  HitPoints = 25500,
+  DrawLevel = 40,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 1,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Corpse = {"unit-destroyed-3x3-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true,
+  GivesResource = "gold", CanHarvest = true,
+  Sounds = {
     "selected", "gold-mine-selected",
     "acknowledge", "gold-mine-acknowledge",
     "ready", "gold-mine-ready",
     "help", "gold-mine-help",
     "dead", "building destroyed",
-    "attack", "gold-mine-attack"})
+    "attack", "gold-mine-attack"} } )
 
-DefineUnitType("unit-oil-patch", "name", "Oil Patch",
-  "files", {"tileset-summer", 
"tilesets/summer/neutral/buildings/oil_patch.png",
+DefineUnitType("unit-oil-patch", { Name = "Oil Patch",
+  Files = {"tileset-summer", "tilesets/summer/neutral/buildings/oil_patch.png",
     "tileset-wasteland", "tilesets/wasteland/neutral/buildings/oil_patch.png",
     "tileset-swamp", "tilesets/swamp/neutral/buildings/oil_patch.png"},
-  "size", {96, 96},
-  "animations", "animations-building", "icon", "icon-oil-patch",
-  "neutral-minimap-color", {0, 0, 0},
-  "speed", 0,
-  "hit-points", 0,
-  "draw-level", 5,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 0,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "type-naval",
-  "building", "visible-under-fog",
-  "gives-resource", "oil",
-  "sounds", {
+  Size = {96, 96},
+  Animations = "animations-building", Icon = "icon-oil-patch",
+  NeutralMinimapColor = {0, 0, 0},
+  Speed = 0,
+  HitPoints = 0,
+  DrawLevel = 5,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 0,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Type = "naval",
+  Building = true, VisibleUnderFog = true,
+  GivesResource = "oil",
+  Sounds = {
     "selected", "oil-patch-selected",
     "acknowledge", "oil-patch-acknowledge",
     "ready", "oil-patch-ready",
     "help", "oil-patch-help",
     "dead", "building destroyed",
-    "attack", "oil-patch-attack"})
+    "attack", "oil-patch-attack"} } )
 
-DefineUnitType("unit-circle-of-power", "name", "Circle of Power",
-  "files", {"tileset-summer", "neutral/buildings/circle_of_power.png"},
-  "size", {64, 64},
-  "animations", "animations-building", "icon", "icon-circle-of-power",
-  "neutral-minimap-color", {128, 128, 0},
-  "speed", 0,
-  "hit-points", 0,
-  "draw-level", 5,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 0,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "corpse", {"unit-destroyed-2x2-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog",
-  "sounds", {
+DefineUnitType("unit-circle-of-power", { Name = "Circle of Power",
+  Files = {"tileset-summer", "neutral/buildings/circle_of_power.png"},
+  Size = {64, 64},
+  Animations = "animations-building", Icon = "icon-circle-of-power",
+  NeutralMinimapColor = {128, 128, 0},
+  Speed = 0,
+  HitPoints = 0,
+  DrawLevel = 5,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 0,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Corpse = {"unit-destroyed-2x2-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true,
+  Sounds = {
     "selected", "circle-of-power-selected",
     "acknowledge", "circle-of-power-acknowledge",
     "ready", "circle-of-power-ready",
     "help", "basic human voices help 2",
     "dead", "building destroyed",
-    "attack", "circle-of-power-attack"})
+    "attack", "circle-of-power-attack"} } )
 
-DefineUnitType("unit-dark-portal", "name", "Dark Portal",
-  "files", {"tileset-summer", 
"tilesets/summer/neutral/buildings/dark_portal.png",
+DefineUnitType("unit-dark-portal", { Name = "Dark Portal",
+  Files = {"tileset-summer", 
"tilesets/summer/neutral/buildings/dark_portal.png",
     "tileset-winter", "tilesets/winter/neutral/buildings/dark_portal.png",
     "tileset-wasteland", 
"tilesets/wasteland/neutral/buildings/dark_portal.png",
     "tileset-swamp", "tilesets/swamp/neutral/buildings/dark_portal.png"},
-  "size", {128, 128},
-  "animations", "animations-building", "icon", "icon-dark-portal",
-  "neutral-minimap-color", {255, 255, 0},
-  "costs", {"time", 100, "gold", 3000, "wood", 3000, "oil", 1000},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1, "oil", 1},
-  "construction", "construction-land2",
-  "speed", 0,
-  "hit-points", 5000,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {4, 4}, "box-size", {127, 127},
-  "sight-range", 4,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "corpse", {"unit-destroyed-4x4-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", "builder-outside",
-  "teleporter",
-  "sounds", {
+  Size = {128, 128},
+  Animations = "animations-building", Icon = "icon-dark-portal",
+  NeutralMinimapColor = {255, 255, 0},
+  Costs = {"time", 100, "gold", 3000, "wood", 3000, "oil", 1000},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1, "oil", 1},
+  Construction = "construction-land2",
+  Speed = 0,
+  HitPoints = 5000,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {4, 4}, BoxSize = {127, 127},
+  SightRange = 4,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Corpse = {"unit-destroyed-4x4-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, BuilderOutside = true,
+  Teleporter = true,
+  Sounds = {
     "selected", "dark-portal-selected",
     "acknowledge", "dark-portal-acknowledge",
     "ready", "dark-portal-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "dark-portal-attack"})
+    "attack", "dark-portal-attack"} } )
 
-DefineUnitType("unit-runestone", "name", "Runestone",
-  "files", {"tileset-summer", "neutral/buildings/runestone.png",
+DefineUnitType("unit-runestone", { Name = "Runestone",
+  Files = {"tileset-summer", "neutral/buildings/runestone.png",
     "tileset-winter", "tilesets/winter/neutral/buildings/runestone.png",
     "tileset-swamp", "tilesets/swamp/neutral/buildings/runestone.png"},
-  "size", {64, 64},
-  "animations", "animations-building", "icon", "icon-runestone",
-  "neutral-minimap-color", {255, 255, 0},
-  "costs", {"time", 175, "gold", 900, "wood", 500},
-  "repair-hp", 4,
-  "repair-costs", {"gold", 1, "wood", 1},
-  "construction", "construction-land2",
-  "speed", 0,
-  "hit-points", 5000,
-  "draw-level", 40,
-  "max-mana", 255,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 4,
-  "armor", 20, "basic-damage", 0, "piercing-damage", 0, "missile", 
"missile-none",
-  "priority", 15, "annoy-computer-factor", 35,
-  "points", 150,
-  "corpse", {"unit-destroyed-2x2-place", 0},
-  "explode-when-killed", "missile-explosion",
-  "type-land",
-  "building", "visible-under-fog", "builder-outside",
-  "sounds", {
+  Size = {64, 64},
+  Animations = "animations-building", Icon = "icon-runestone",
+  NeutralMinimapColor = {255, 255, 0},
+  Costs = {"time", 175, "gold", 900, "wood", 500},
+  RepairHp = 4,
+  RepairCosts = {"gold", 1, "wood", 1},
+  Construction = "construction-land2",
+  Speed = 0,
+  HitPoints = 5000,
+  DrawLevel = 40,
+  MaxMana = 255,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 4,
+  Armor = 20, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 15, AnnoyComputerFactor = 35,
+  Points = 150,
+  Corpse = {"unit-destroyed-2x2-place", 0},
+  ExplodeWhenKilled = "missile-explosion",
+  Type = "land",
+  Building = true, VisibleUnderFog = true, BuilderOutside = true,
+  Sounds = {
     "selected", "runestone-selected",
     "acknowledge", "runestone-acknowledge",
     "ready", "runestone-ready",
     "help", "basic orc voices help 2",
     "dead", "building destroyed",
-    "attack", "runestone-attack"})
+    "attack", "runestone-attack"} } )
 
-DefineUnitType("unit-dead-body", "name", "Dead Body",
-  "files", {"tileset-summer", "neutral/units/corpses.png"},
-  "size", {72, 72},
-  "animations", "animations-dead-body", "icon", "icon-peasant",
-  "speed", 0,
-  "hit-points", 255,
-  "draw-level", 30,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 1,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "type-land",
-  "vanishes",
-  "sounds", {})
+DefineUnitType("unit-dead-body", { Name = "Dead Body",
+  Files = {"tileset-summer", "neutral/units/corpses.png"},
+  Size = {72, 72},
+  Animations = "animations-dead-body", Icon = "icon-peasant",
+  Speed = 0,
+  HitPoints = 255,
+  DrawLevel = 30,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 1,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Type = "land",
+  Vanishes = true,
+  Sounds = {} } )
 
-DefineUnitType("unit-destroyed-1x1-place", "name", "Destroyed 1x1 Place",
-  "files", {
+DefineUnitType("unit-destroyed-1x1-place", { Name = "Destroyed 1x1 Place",
+  Files = {
     "tileset-summer", 
"tilesets/summer/neutral/buildings/small_destroyed_site.png",
     "tileset-winter", 
"tilesets/winter/neutral/buildings/small_destroyed_site.png",
     "tileset-wasteland",
       "tilesets/wasteland/neutral/buildings/small_destroyed_site.png",
     "tileset-swamp", 
"tilesets/swamp/neutral/buildings/small_destroyed_site.png"},
-  "size", {32, 32},
-  "animations", "animations-destroyed-place", "icon", "icon-peasant",
-  "speed", 0,
-  "hit-points", 255,
-  "draw-level", 10,
-  "tile-size", {1, 1}, "box-size", {31, 31},
-  "sight-range", 2,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "type-land",
-  "building", "visible-under-fog",
-  "vanishes",
-  "sounds", {})
+  Size = {32, 32},
+  Animations = "animations-destroyed-place", Icon = "icon-peasant",
+  Speed = 0,
+  HitPoints = 255,
+  DrawLevel = 10,
+  TileSize = {1, 1}, BoxSize = {31, 31},
+  SightRange = 2,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Type = "land",
+  Building = true, VisibleUnderFog = true,
+  Vanishes = true,
+  Sounds = {} } )
 
-DefineUnitType("unit-destroyed-2x2-place", "name", "Destroyed 2x2 Place",
-  "files", {"tileset-summer", 
"tilesets/summer/neutral/buildings/destroyed_site.png",
+DefineUnitType("unit-destroyed-2x2-place", { Name = "Destroyed 2x2 Place",
+  Files = {"tileset-summer", 
"tilesets/summer/neutral/buildings/destroyed_site.png",
     "tileset-winter", "tilesets/winter/neutral/buildings/destroyed_site.png",
     "tileset-wasteland", 
"tilesets/wasteland/neutral/buildings/destroyed_site.png",
     "tileset-swamp", "tilesets/swamp/neutral/buildings/destroyed_site.png"},
-  "size", {64, 64},
-  "animations", "animations-destroyed-place", "icon", "icon-peasant",
-  "speed", 0,
-  "hit-points", 255,
-  "draw-level", 10,
-  "tile-size", {2, 2}, "box-size", {63, 63},
-  "sight-range", 2,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "type-land",
-  "building", "visible-under-fog",
-  "vanishes",
-  "sounds", {})
-
-DefineUnitType("unit-destroyed-3x3-place", "name", "Destroyed 3x3 Place",
-  "use", "unit-destroyed-2x2-place",
-  "size", {96, 96},
-  "animations", "animations-destroyed-place", "icon", "icon-peasant",
-  "speed", 0,
-  "hit-points", 255,
-  "draw-level", 10,
-  "tile-size", {3, 3}, "box-size", {95, 95},
-  "sight-range", 3,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "type-land",
-  "building", "visible-under-fog",
-  "vanishes",
-  "sounds", {})
-
-DefineUnitType("unit-destroyed-4x4-place", "name", "Destroyed 4x4 Place",
-  "use", "unit-destroyed-2x2-place",
-  "size", {128, 128},
-  "animations", "animations-destroyed-place", "icon", "icon-peasant",
-  "speed", 0,
-  "hit-points", 255,
-  "draw-level", 10,
-  "tile-size", {4, 4}, "box-size", {127, 127},
-  "sight-range", 3,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "type-land",
-  "building", "visible-under-fog",
-  "vanishes",
-  "sounds", {})
-
-DefineUnitType("unit-revealer", "name", "Dummy unit",
-  "size", {0, 0},
-  "animations", "animations-building", "icon", "icon-holy-vision",
-  "speed", 0,
-  "hit-points", 1,
-  "tile-size", {1, 1}, "box-size", {1, 1},
-  "sight-range", 12,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "decay-rate", 1,
-  "type-land",
-  "building", "visible-under-fog",
-  "revealer",
-  "detect-cloak",
-  "sounds", {})
-
-DefineUnitType("unit-reveal-attacker", "name", "Dummy unit",
-  "size", {0, 0},
-  "animations", "animations-building", "icon", "icon-holy-vision",
-  "speed", 0,
-  "hit-points", 0,
-  "tile-size", {1, 1}, "box-size", {1, 1},
-  "sight-range", 1,
-  "basic-damage", 0, "piercing-damage", 0, "missile", "missile-none",
-  "priority", 0,
-  "decay-rate", 1,
-  "type-land",
-  "building", "visible-under-fog",
-  "sounds", {})
+  Size = {64, 64},
+  Animations = "animations-destroyed-place", Icon = "icon-peasant",
+  Speed = 0,
+  HitPoints = 255,
+  DrawLevel = 10,
+  TileSize = {2, 2}, BoxSize = {63, 63},
+  SightRange = 2,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Type = "land",
+  Building = true, VisibleUnderFog = true,
+  Vanishes = true,
+  Sounds = {} } )
+
+DefineUnitType("unit-destroyed-3x3-place", { Name = "Destroyed 3x3 Place",
+  Use = "unit-destroyed-2x2-place",
+  Size = {96, 96},
+  Animations = "animations-destroyed-place", Icon = "icon-peasant",
+  Speed = 0,
+  HitPoints = 255,
+  DrawLevel = 10,
+  TileSize = {3, 3}, BoxSize = {95, 95},
+  SightRange = 3,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Type = "land",
+  Building = true, VisibleUnderFog = true,
+  Vanishes = true,
+  Sounds = {} } )
+
+DefineUnitType("unit-destroyed-4x4-place", { Name = "Destroyed 4x4 Place",
+  Use = "unit-destroyed-2x2-place",
+  Size = {128, 128},
+  Animations = "animations-destroyed-place", Icon = "icon-peasant",
+  Speed = 0,
+  HitPoints = 255,
+  DrawLevel = 10,
+  TileSize = {4, 4}, BoxSize = {127, 127},
+  SightRange = 3,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  Type = "land",
+  Building = true, VisibleUnderFog = true,
+  Vanishes = true,
+  Sounds = {} } )
+
+DefineUnitType("unit-revealer", { Name = "Dummy unit",
+  Size = {0, 0},
+  Animations = "animations-building", Icon = "icon-holy-vision",
+  Speed = 0,
+  HitPoints = 1,
+  TileSize = {1, 1}, BoxSize = {1, 1},
+  SightRange = 12,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  DecayRate = 1,
+  Type = "land",
+  Building = true, VisibleUnderFog = true,
+  Revealer = true,
+  DetectCloak = true,
+  Sounds = {} } )
+
+DefineUnitType("unit-reveal-attacker", { Name = "Dummy unit",
+  Size = {0, 0},
+  Animations = "animations-building", Icon = "icon-holy-vision",
+  Speed = 0,
+  HitPoints = 0,
+  TileSize = {1, 1}, BoxSize = {1, 1},
+  SightRange = 1,
+  BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none",
+  Priority = 0,
+  DecayRate = 1,
+  Type = "land",
+  Building = true, VisibleUnderFog = true,
+  Sounds = {} } )
 
 -- Load the different races
 Load("ccl/human/units.lua")




reply via email to

[Prev in Thread] Current Thread [Next in Thread]