--__________         __    __  .__           ___________
--\______   \_____ _/  |__/  |_|  |   ____   \_   _____/__________
-- |    |  _/\__  \\   __\   __\  | _/ __ \   |    __)/  _ \_  __ \
-- |    |   \ / __ \|  |  |  | |  |_\  ___/   |     \(  <_> )  | \/
-- |______  /(____  /__|  |__| |____/\___  >  \___  / \____/|__|
--        \/      \/                     \/       \/
--   _____                     .___.__
--  /     \ _____    ____    __| _/|__| ____  ___________
-- /  \ /  \\__  \  /    \  / __ | |  |/ ___\/  _ \_  __ \
--/    Y    \/ __ \|   |  \/ /_/ | |  \  \__(  <_> )  | \/
--\____|__  (____  /___|  /\____ | |__|\___  >____/|__|
--        \/     \/     \/      \/         \/

--      jokes.lua - Joke units and buildings
--
--      (c) Copyright 2005 by Kimmo Merikivi
--
--      This program is free software; you can redistribute it and/or modify
--      it under the terms of the GNU General Public License as published by
--      the Free Software Foundation; either version 2 of the License, or
--      (at your option) any later version.
--  
--      This program is distributed in the hope that it will be useful,
--      but WITHOUT ANY WARRANTY; without even the implied warranty of
--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--      GNU General Public License for more details.
--  
--      You should have received a copy of the GNU General Public License
--      along with this program; if not, write to the Free Software
--      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------

DefineUnitType("unit-tux", { Name = "Tux",
  Files = {"tileset-summer", "jokes/tux.png"},
  Size = {72, 72},
  Animations = "animations-tux", Icon = "icon-tux",
  Costs = {"time", 1000000, "gold", 750000},
  Speed = 10,
  HitPoints = 3000,
  DrawLevel = 35,
  TileSize = {1, 1}, BoxSize = {31, 31},
  SightRange = 10, ComputerReactionRange = 5, PersonReactionRange = 5,
  Armor = 100, BasicDamage = 100, PiercingDamage = 50, Missile = "missile-tux",
  MaxAttackRange = 8,
  Priority = 600,
  Points = 50000,
  Demand = 2,
  Corpse = {"unit-dead-body", 1},
  Type = "land",
  RightMouseAction = "attack",
  CanAttack = true,
  CanTargetLand = true,
  LandUnit = true,
  organic = true,
  SelectableByRectangle = true,
  Sounds = {
    "selected", "tux selected",
    "acknowledge", "tux acknowledge",
    "dead", "tux die",
    "attack", "sword attack"} } )

DefineUnitType("unit-demogorgon", { Name = "Demogorgon",
  Files = {"tileset-summer", "jokes/demogorgon.png"},
  Size = {144, 144},
  Animations = "animations-demogorgon", Icon = "icon-demogorgon",
  Costs = {"time", 1000000, "gold", 750000},
  Speed = 10,
  HitPoints = 50000,
  DrawLevel = 35,
  TileSize = {1, 1}, BoxSize = {143, 143},
  SightRange = 20, ComputerReactionRange = 20, PersonReactionRange = 20,
  Armor = 100, BasicDamage = 100, PiercingDamage = 50, Missile = "missile-none",
  MaxAttackRange = 1,
  Priority = 600,
  Points = 50000,
  Demand = 2,
  Corpse = {"unit-dead-body", 1},
  Type = "land",
  RightMouseAction = "attack",
  CanAttack = true,
  CanTargetLand = true,
  LandUnit = true,
  organic = true,
  demon = true,
  SelectableByRectangle = true })

DefineUnitType("unit-young-dragon", { Name = "Young dragon",
  Files = {"tileset-summer", "jokes/youngdragon.png"},
  Size = {256, 256},
  Animations = "animations-dragon-breathing", Icon = "icon-demogorgon",
  Costs = {"time", 1000000, "gold", 750000},
  Speed = 20,
  HitPoints = 2800,
  DrawLevel = 35,
  TileSize = {1, 1}, BoxSize = {143, 143},
  SightRange = 25, ComputerReactionRange = 29, PersonReactionRange = 29,
  Armor = 40, BasicDamage = 32, PiercingDamage = 8, Missile = "missile-fire-breath",
  MaxAttackRange = 8,
  Priority = 600,
  Points = 60000,
  Demand = 8,
  Corpse = {"unit-dead-body", 1},
  Type = "land",
  RightMouseAction = "attack",
  CanAttack = true,
  CanTargetLand = true,
  LandUnit = true,
  organic = true,
  demon = true,
  SelectableByRectangle = true })

DefineUnitType("unit-dragon", { Name = "Dragon",
  Files = {"tileset-summer", "jokes/youngdragon.png"},
  Size = {256, 256},
  Animations = "animations-dragon-breathing", Icon = "icon-demogorgon",
  Costs = {"time", 1000000, "gold", 750000},
  Speed = 20,
  HitPoints = 7000,
  DrawLevel = 35,
  TileSize = {1, 1}, BoxSize = {143, 143},
  SightRange = 30, ComputerReactionRange = 29, PersonReactionRange = 29,
  Armor = 45, BasicDamage = 60, PiercingDamage = 20, Missile = "missile-fire-breath",
  MaxAttackRange = 12,
  Priority = 700,
  Points = 60000,
  Demand = 18,
  Corpse = {"unit-dead-body", 1},
  Type = "land",
  RightMouseAction = "attack",
  CanAttack = true,
  CanTargetLand = true,
  LandUnit = true,
  organic = true,
  demon = true,
  SelectableByRectangle = true })

DefineUnitType("unit-flying-dragon", { Name = "Flying dragon",
  Files = {"tileset-summer", "jokes/youngdragon.png"},
  Size = {256, 256},
  Animations = "animations-flying-dragon", Icon = "icon-demogorgon",
  Costs = {"time", 1000000, "gold", 750000},
  Speed = 20,
  HitPoints = 4800,
  DrawLevel = 35,
  TileSize = {1, 1}, BoxSize = {143, 143},
  SightRange = 32, ComputerReactionRange = 29, PersonReactionRange = 29,
  Armor = 28, BasicDamage = 125, PiercingDamage = 75, Missile = "missile-none",
  MaxAttackRange = 1,
  Priority = 700,
  Points = 60000,
  Demand = 18,
  Corpse = {"unit-dead-body", 1},
  Type = "fly",
  RightMouseAction = "attack",
  CanAttack = true,
  CanTargetLand = true,
  LandUnit = true,
  organic = true,
  demon = true,
  SelectableByRectangle = true })

DefineUnitType("unit-biting-dragon", { Name = "Biting dragon",
  Files = {"tileset-summer", "jokes/youngdragon.png"},
  Size = {256, 256},
  Animations = "animations-dragon", Icon = "icon-demogorgon",
  Costs = {"time", 1000000, "gold", 750000},
  Speed = 20,
  HitPoints = 6000,
  DrawLevel = 35,
  TileSize = {1, 1}, BoxSize = {143, 143},
  SightRange = 32, ComputerReactionRange = 29, PersonReactionRange = 29,
  Armor = 50, BasicDamage = 110, PiercingDamage = 60, Missile = "missile-none",
  MaxAttackRange = 1,
  Priority = 700,
  Points = 60000,
  Demand = 18,
  Corpse = {"unit-dead-body", 1},
  Type = "land",
  RightMouseAction = "attack",
  CanAttack = true,
  CanTargetLand = true,
  LandUnit = true,
  organic = true,
  demon = true,
  SelectableByRectangle = true })

DefineUnitType("unit-wizard-of-yendor", { Name = "Rodney",
  Files = {"tileset-summer", "jokes/wizard-of-yendor.png"},
  Size = {72, 72},
  Animations = "animations-mage", Icon = "icon-wizard-of-yendor",
  Costs = {"time", 10000, "gold", 50000},
  Speed = 8,
  HitPoints = 2000,
  MaxMana = 1000,
  DrawLevel = 40,
  TileSize = {1, 1}, BoxSize = {33, 33},
  SightRange = 10, ComputerReactionRange = 10, PersonReactionRange = 10,
  Armor = 30, BasicDamage = 500, PiercingDamage = 200, Missile = "missile-none",
  MaxAttackRange = 1,
  Priority = 600,
  Points = 50000,
  Demand = 1,
  Corpse = {"unit-dead-body", 1},
  Type = "land",
  RightMouseAction = "attack",
  CanAttack = true,
  CanTargetLand = true,
  CanCastSpell = {
      "spell-fod",
      "spell-haste-self"},
  LandUnit = true,
  organic = true,
  SelectableByRectangle = true,
  Sounds = {
    "selected", "wizard-of-yendor selected",
    "acknowledge", "wizard-of-yendor acknowledge",
    "dead", "wizard-of-yendor die",
    "attack", "sword attack"} } )

DefineUnitType("unit-kimmo", { Name = "KimmoKM",
  Files = {"tileset-summer", "jokes/kimmo.png"},
  Size = {72, 72},
  Animations = "animations-developer", Icon = "icon-kimmo",
  Costs = {"time", 10000, "gold", 250000, "iron", 100000, "titanium", 500000},
  HitPoints = 0,
  Speed = 10,
  DrawLevel = 40,
  TileSize = {1, 1}, BoxSize = {31, 31},
  SightRange = 100, ComputerReactionRange = 4, PersonReactionRange = 4,
  Armor = 2000, BasicDamage = 1000000, PiercingDamage = 5, Missile = "missile-none",
  MaxAttackRange = 1,
  Priority = 1,
  Points = 100000,
  MaxMana = 1000,
  CanCastSpell = {
      "spell-kick-away"},
  Demand = 1,
  Corpse = {"unit-dead-body", 1},
  Type = "land",
  RightMouseAction = "attack",
  CanAttack = true,
  CanTargetLand = true,
  LandUnit = true,
  organic = true,
  SelectableByRectangle = true,
  Sounds = {
    "selected", "kimmo"} } )

DefineUnitType("unit-mikko", { Name = "MikkoMMM",
  Files = {"tileset-summer", "jokes/mikko.png"},
  Size = {72, 72},
  Animations = "animations-developer", Icon = "icon-mikko",
  Costs = {"time", 10000, "gold", 250000, "iron", 100000, "titanium", 500000},
  HitPoints = 10000000,
  RegenerationRate = 100,
  Speed = 10,
  DrawLevel = 40,
  TileSize = {1, 1}, BoxSize = {31, 31},
  SightRange = 100, ComputerReactionRange = 4, PersonReactionRange = 4,
  Armor = 2000, BasicDamage = 10000, PiercingDamage = 1000, Missile = "missile-none",
  MaxAttackRange = 1,
  Priority = 1,
  Points = 100000,
  Demand = 1,
  Corpse = {"unit-dead-body", 1},
  Type = "land",
  RightMouseAction = "attack",
  CanAttack = true,
  CanTargetLand = true,
  LandUnit = true,
  organic = true,
  SelectableByRectangle = true } )
