-- ____ _ __ -- / __ )____ _____ | | / /___ ___________ -- / __ / __ \/ ___/ | | /| / / __ `/ ___/ ___/ -- / /_/ / /_/ (__ ) | |/ |/ / /_/ / / (__ ) -- /_____/\____/____/ |__/|__/\__,_/_/ /____/ -- -- A futuristic real-time strategy game. -- This file is part of Bos Wars. -- -- unit-cannon.lua - Define the cannon unit. -- -- (c) Copyright 2004-2006 by Francois Beerten. -- -- 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -- -- $Id: unit-cannon.lua 8831 2007-05-28 20:06:45Z feb $ DefineAnimations("animations-cannon", { Still = {"frame 5", "wait 1", }, Attack = {"unbreakable begin", "frame 5", "wait 5", "frame 5", "sound bazoo-attack", "attack", "wait 1", "frame 10", "wait 15", "frame 5", "wait 170", "frame 5", "unbreakable end", "wait 1", }, Death = {"unbreakable begin", "frame 10", "unbreakable end", "wait 50", }, }) DefineIcon({ Name = "icon-cannon", Size = {46, 38}, Frame = 0, File = "units/cannon/cannon_i.png"}) DefineIcon({ Name = "icon-cannon_b", Size = {46, 38}, Frame = 0, File = "units/cannon/cannon_i.png"}) DefineConstruction("construction-cannon", { Constructions = { {Percent = 0, File = "main", Frame = 0}, {Percent = 10, File = "main", Frame = 0}, {Percent = 20, File = "main", Frame = 1}, {Percent = 30, File = "main", Frame = 2}, {Percent = 40, File = "main", Frame = 3}, {Percent = 50, File = "main", Frame = 4}, {Percent = 60, File = "main", Frame = 5}, {Percent = 70, File = "main", Frame = 6}, {Percent = 80, File = "main", Frame = 7}, {Percent = 90, File = "main", Frame = 7} } }) DefineMissileType("missile-cannon", { File = "units/cannon/weapon.png", Size = {128, 128}, Frames = 6, NumDirections = 1, ImpactSound = "rocket-impact", DrawLevel = 150, Class = "missile-class-point-to-point", Sleep = 1, Speed = 20, Range = 3}) MakeSound("cannon-ready", GetCurrentLuaPath().."/cannon.completed.wav") MakeSound("cannon-help", GetCurrentLuaPath().."/cannon.underattack.wav") MakeSound("cannon-selected", GetCurrentLuaPath().."/cannon_selected.wav") DefineUnitType("unit-cannon", { Name = "Cannon", Image = {"file", "units/cannon/cannon.png", "size", {128, 128},}, Offset = {0, -20}, Shadow = {"file", "units/cannon/cannon_s.png", "size", {128, 128}}, Animations = "animations-cannon", Icon = "icon-cannon", EnergyValue = 17000, MagmaValue = 8500, RepairHp = 2, Construction = "construction-cannon", Speed = 0, HitPoints = 160, DrawLevel = 25, TileSize = {2, 2}, BoxSize = {64, 58}, SightRange = 6, ComputerReactionRange = 16, PersonReactionRange = 6, Armor = 10, BasicDamage = 40, PiercingDamage = 16, MaxAttackRange = 27, Missile = "missile-cannon", Priority = 20, AnnoyComputerFactor = 45, Points = 100, ExplodeWhenKilled = "missile-160x128-explosion", RightMouseAction = "attack", CanAttack = true, CanTargetLand = true, CanTargetAir = false, NumDirections = 8, Flip = false, Corpse = "build-dead-cannon", Type = "land", Building = true, BuilderOutside = true, VisibleUnderFog = true, Sounds = { "selected", "cannon-selected", "help", "cannon-help", "ready", "cannon-ready" } }) DefineAnimations("animations-dead-cannon", { Death = {"unbreakable begin", "wait 1", "frame 0", "wait 2000", "frame 1", "wait 2000", "frame 2", "wait 2000", "frame 2", "wait 1", "unbreakable end", "wait 1", }, }) DefineUnitType("build-dead-cannon", { Name = "CannonCrater", Image = {"file", GetCurrentLuaPath().."/cannon_c.png", "size", {128, 128}}, Animations = "animations-dead-cannon", Icon = "icon-cancel", Speed = 0, HitPoints = 999, DrawLevel = 10, TileSize = {2, 2}, BoxSize = {220, 156}, SightRange = 1, BasicDamage = 0, PiercingDamage = 0, Missile = "missile-none", Priority = 0, Type = "land", Building = true, Vanishes = true }) DefineAllow("unit-cannon", AllowAll) DefineButton({ Pos = 3, Level = 3, Icon = "icon-cannon_b", Action = "build", Value = "unit-cannon", Key = "c", Hint = "BUILD ~!CANNON", ForUnit = {"unit-engineer"}}) -- DefineButton for the 'stop' and 'attack' actions are defined in buttons.lua.